2017-07-06 8 views
0

私が持っているこのクエリはnew_comment->1またはnew_review->1またはnew_salary->1Laravelは、どのようにデータを選択する

を持つすべてのユーザー私はuserテーブル

を持っているために結果を取得

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

このクエリ

idnamestatus
1 | us_1 | 0
2 | us_2 | 1
3 | us_3 | 1

notificationテーブル

idnew_commentnew_reviewnew_salary
1 | | | 1
2 | | | 1
3 | | | 1

ユーザー1がstatus 0またはしてくださいユーザーがアクティブな場合、

答えて

0

[OK]をleftjoinせずに、私があれば解決策を見つけた方法where他を確認するために、任意のアイデア を持っているので、このクエリはすべての行を取得します誰でも必要とします

$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(); 
関連する問題