Laravel,如果关系条件为真,如何选择数据

时间:2017-07-06 16:46:28

标签: php jquery laravel model-view-controller laravel-5

我有这个查询

$organisationUserNotifications = OrganisationUserNotification::
            whereHas('user',function($user){
                $user->where('status',STATUS_ACTIVE);
            })
            ->orWhere('new_comment',ORGANISATION_NOTIFICATION_ACTIVE)
            ->orWhere('new_review',ORGANISATION_NOTIFICATION_ACTIVE)
            ->orWhere('new_salary',ORGANISATION_NOTIFICATION_ACTIVE)
            ->get();

此查询获取拥有new_comment->1new_review->1new_salary->1

的所有用户的结果

我有user

  

id name status
   1 | us_1 | 0
   2 | us_2 | 1
   3 | us_3 | 1

notification

  

id new_comment new_review new_salary
   1 | 0 | 1 | 1
   2 | 1 | 0 | 1
   3 | 1 | 0 | 1

此查询获取所有行,因为用户1具有status 0或new_review 1 请任何想法 如果用户处于活动状态,如果没有leftjoin

,如何验证其他where

1 个答案:

答案 0 :(得分:0)

好吧,如果有人需要,我找到了解决方案

$organisationUserNotifications = OrganisationUserNotification::
        whereHas('user',function($user){
            $user->where('status',STATUS_ACTIVE);
        })
        ->where(function($query){
           $query->orWhere('new_comment',ORGANISATION_NOTIFICATION_ACTIVE);
           $query->orWhere('new_review',ORGANISATION_NOTIFICATION_ACTIVE);
           $query->orWhere('new_salary',ORGANISATION_NOTIFICATION_ACTIVE);
        })
        ->get();