Laravel关系where子句中的列“ id”不明确

use*_*579 1 relationship laravel-5

我有课程和订阅类型。我想获得具有给定订阅类型的所有课程。我的尝试:

$courses=Course::wherehas('subscriptionType',function ($q)
        {
            return $q->where('id','1');
        })->get();
Run Code Online (Sandbox Code Playgroud)

但这失败了,where子句中的列“ id”不明确。有任何提示吗?

谢谢!

Muh*_*nir 7

我测试了您的代码,它没有任何更改即可正常运行。您的关系定义可能有问题。

但是,您可以通过进行以下更改来使其运行。

替换return $ q-> where('id','1'); 返回$ Q->其中( 'subscriptiontypes.id', '1'); 我假设subscriptiontype模型的表名是subscriptiontypes。

完整的代码如下所示:

$courses=Course::wherehas('subscriptiontype',function ($q)
        {
            return $q->where('subscriptiontypes.id','1');
        })->get();
Run Code Online (Sandbox Code Playgroud)