2017-04-13 6 views
0

私はモデルに対して次のクエリを実行しますが、チームの一致のみをクエリする条件は最初のwhere句のみに適用されます。関係パラメータグループ化を使用したクエリ

$this->matches = $this->team->matches()->whereNull('wbp')->orWhere(function($q) { 
     $q->whereNotNull('wbp')->where('is_played','=',0); 
    })->get(); 

私は自分自身でそれらを使用する場合は、それらが正常に機能している - 正確に一つの項目彼らが必要として戻っ両方:

$this->team->matches()->whereNull('wbp')->get(); 

$this->team->matches()->where(function($q) { 
     $q->whereNotNull('wbp')->where('is_played','=',0); 
    })->get(); 

をしかし、彼らはちょうど私のチームの試合WBPのすべてを与えるの連鎖nullであり、wbp!= nullおよびis_played = falseのチームのすべてのマッチも含まれます。

ここで正しくチェーンするにはどうすればよいですか?

私はチェーンにマッチ()の呼び出しに必要な場所

答えて

1

$this->matches = $this->team->matches()->where(function ($q) 
    { 
     $q->whereNull('wbp')->orWhere(function($q) 
     { 
      $q->whereNotNull('wbp')->where('is_played','=',0); 
     }); 
    })->get(); 
関連する問題