我有这个查询
$timezone ='';
if(!empty(\Request::get('timezone')))
{
$timezone = \Request::get('timezone')
}else
{
$timezone = 'users.timezone'
}
$users = DB::table('users')
->where('timezone', $timezone)
->get();
如果标准为空或未定义,如何保持显示结果?
答案 0 :(得分:2)
使用when()
方法:
DB::table('users')->when($request->timezone, function($q) {
return $q->where('timezone', request()->timezone)
})
->get();
when方法仅在第一个参数为true时执行给定的Closure。如果第一个参数为false,则不执行Closure
或者,您可以使用where闭合。