2016-07-15 3 views
-2

Как выполнить, где положение с помощью Laravel красноречива с помощью следующего запроса:Laravel 5,2 вложенного Где раздел

select * from stats where payed = 1 AND WHERE (user_id = 1 OR owner_id = 1) 

Я не знаю, как изменить этот код для этого:

$payouts = Stat::where('payed', '1') 
      ->???(function ($query) { 
       $query->where('owner_id', Auth::user()->id) 
         ->where('user_id', Auth::user()->id); 
      })->get(); 
+0

Это очень четко doumented в [Laravel беглых документы] (https://laravel.com /docs/5.2/queries#advanced-where-clauses) – apokryfos

ответ

2

Изменить как этот

$payouts = Stat::where('payed', '1'); 
     $payouts->where(function ($payouts) { 
      $payouts->where('owner_id', Auth::user()->id) 
        ->orWhere('user_id', Auth::user()->id); 
     })->get(); 
0

Try это

$payouts = Stat::where('payed', '1') 
      ->where(function ($query) { 
       $query->where('owner_id', Auth::user()->id) 
         ->orwhere('user_id', Auth::user()->id); 
      })->get(); 
0

Вы близки, это следует сделать трюк:

$payouts = Stat::where('payed', '1') 
      ->where(function ($query) { 
       $query->where('owner_id', Auth::user()->id) 
         ->orWhere('user_id', Auth::user()->id); 
      })->get(); 

Это ищет where payed = 1 AND (owner_id is the current user ID OR the user_id is the current user ID)