2016-10-29 6 views
0

オプションのwhereクエリがあるかどうか疑問に思う。例:Laravel optional where()query

Select * from table Xは2でなければならず、Yは0または1に等しくなければなりませんか?

答えて

1

あなたに試すことがあります。これを達成するために、いくつかの方法があります

$userId = $request->input('userId'); 
->where('X', 2) 
->where(function($q) use($userId) { 
    $q->where('Y', $userId) 
     ->orWhere('Y', 1) 
}) 
+0

動的値を渡すにはどうすればよいですか?例えば ​​'' $ q-> where( 'Y'、$ userId) '' – user2636197

+0

回答が更新されました。 –

+0

働いてくれてありがとう、私は7分で受け入れます – user2636197

0

あなたもバックモデルによるオブジェクトを取得することができます:

$collection = Mymodel::where('x', 2)->where('y', 0)->orWhere('y', 1)->get(); 

それともアミットのような

は、上記示しています。

0

あなたは、単純なケースのためorWhere()を使用することができますが、あなたのケースで、あなたは次のようにyについて、where句を返すように関数を使用する必要があります。

$result = $field->letters()->where('x', 2)->where(function ($q) { 
    $q->where('y', 0)->orWhere('y', 1); 
})->get(); 

注:あなたのオブジェクトモデルと手紙を交換してください。