Laravel 5的关系不起作用

时间:2017-02-24 13:42:43

标签: mysql laravel relationship

我有课程和订阅类型。 订阅用户具有订阅类型,我想要用户订阅类型匹配的所有课程。

我的尝试(返回所有课程,而不仅仅是正确的课程):

$courses = Course::has('maintask')->with(['subscriptionType' => function ($q) use ($user)
        {
            return $q->where('subscription_type_id',$user->subscription[0]->subscription_type_id)->where('status','1');
        }])->get();

任何提示?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用whereHas()

$courses = Course::has('maintask')
    ->whereHas('subscriptionType', function ($q) use ($user) {
        $q->where('id', $user->subscription[0]->subscription_type_id)
          ->where('status', 1);
    })->get();