2017-02-24 142 views
2

我有课程和订阅类型。 订阅用户具有订阅类型,我希望用户订阅类型匹配的所有课程。Laravel 5的关系不起作用

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

$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(); 

任何提示吗?

谢谢!

回答

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(); 
+1

谢谢!这样可行 – user3844579