2016-07-15 5 views
-2

Wie ein auszuführen, wo Klausel Laravel eloquent mit der folgenden Abfrage:Laravel 5.2 verschachtelt Where-Klausel

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

Ich weiß nicht, wie dies den Code zu ändern:

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

Suche Dieser sehr deutlich doumented in den [Laravel fließend docs] (https://laravel.com /docs/5.2/abfragen#advanced- where- clauses) – apokryfos

Antwort

2

ändern wie diese

$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 diese

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

Sie sind in der Nähe, sollte dies den Trick:

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

Dies ist für where payed = 1 AND (owner_id is the current user ID OR the user_id is the current user ID)