Laravel 关系列 'id' 在 where 子句中不明确
Laravel relationship Column 'id' in where clause is ambiguous
我有课程和订阅类型。
我想获取所有具有给定订阅类型的课程。
我的尝试:
$courses=Course::wherehas('subscriptionType',function ($q)
{
return $q->where('id','1');
})->get();
但这失败了:
Column 'id' in where clause is ambiguous
执行此操作有什么技巧吗?
我测试了你的代码,它在没有任何更改的情况下工作正常。可能是你的关系定义有问题。
不过,您可以通过进行以下更改来实现 运行。
将 return $q->where('id','1'); 替换为 return $ q->where('subscriptiontypes.id','1'); 我假设 table 订阅类型模型的名称是订阅类型。
完整代码如下:
$courses=Course::wherehas('subscriptiontype',function ($q)
{
return $q->where('subscriptiontypes.id','1');
})->get();
我有课程和订阅类型。 我想获取所有具有给定订阅类型的课程。 我的尝试:
$courses=Course::wherehas('subscriptionType',function ($q)
{
return $q->where('id','1');
})->get();
但这失败了:
Column 'id' in where clause is ambiguous
执行此操作有什么技巧吗?
我测试了你的代码,它在没有任何更改的情况下工作正常。可能是你的关系定义有问题。
不过,您可以通过进行以下更改来实现 运行。
将 return $q->where('id','1'); 替换为 return $ q->where('subscriptiontypes.id','1'); 我假设 table 订阅类型模型的名称是订阅类型。
完整代码如下:
$courses=Course::wherehas('subscriptiontype',function ($q)
{
return $q->where('subscriptiontypes.id','1');
})->get();