当用户有10个下拉列表选择框来过滤数据时,我正在一个项目上。问题在于用户可能不会使用所有选择框。所以我想在这部分包括一些if条件。
public function PostSearch()
{
$eye_color = Input::get('eye_color');
$tattoos = Input::get('tattoos');
$piercings = Input::get('piercings');
....
$user = User::where([['eye_color',$eye_color],
['tattoos',$tattoos],
['piercings',$piercings]])->get();
return $user;
}
如何在输入选择查询中使用if条件。
答案 0 :(得分:1)
您可以执行以下操作:
$filters = [
'eye_color' => Input::get('eye_color'),
'tattoos' => Input::get('tattoos'),
'piercings' => Input::get('piercings'),
];
$user = User::where(function ($query) use ($filters) {
if ($filters['eye_color']) {
$query->where('eye_color', '=', $filters['eye_color']);
}
if ($filters['tattoos']) {
$query->where('tattoos', '=', $filters['tattoos']);
}
if ($filters['piercings']) {
$query->where('piercings', '=', $filters['piercings']);
}
})->get();
return $user;
让我知道它是否有效。