2016-04-26 17 views
0

検索キーが空でない場合にのみselectクエリでwhere条件を実行します。検索キーが空の場合は、その条件をスキップします。変数$categoryがどこ条件ということを実行する必要空でない場合、これは、このクエリでLaravelクエリで検索キーがnullでない場合にwhere条件を実行します。

$users = User::orderBy('id','asc') 
      ->join('agents', 'users.id', '=', 'agents.user_id') 
      ->select('users.id', 'users.first_name', 'users.last_name', 'users.email') 

      ->where('agents.category', 'like', '%'.$category.'%') 

      ->orWhere('agents.location', 'like', '%'.$operation.'%') 
      ->get(); 

私のコードです。 $operationがnullの場合は、条件をスキップする必要があります。この問題を解決するには?

+1

TAG-スパムをしないでください。これは[tag:jquery]とは関係ありません。 –

答えて

3

は、次のことを試してください。

$users = User::orderBy('id','asc')->join('agents', 'users.id', '=', 'agents.user_id')->select('users.id', 'users.first_name', 'users.last_name', 'users.email'); 
if(!is_null($category)) { 
$users = $users->where('agents.category', 'like', '%'.$category.'%')->orWhere('agents.location', 'like', '%'.$operation.'%'); 
} 
$users = $users->get(); 

か:

$users = User::orderBy('id','asc')->join('agents', 'users.id', '=', 'agents.user_id')->select('users.id', 'users.first_name', 'users.last_name', 'users.email')->where('agents.location', 'like', '%'.$operation.'%'); 
if(!is_null($category)) { 
$users = $users->orWhere('agents.category', 'like', '%'.$category.'%'); 
} 
$users = $users->get(); 
関連する問題