Laravel查询:Where子句中的条件值

时间:2017-12-27 10:47:36

标签: php laravel query-builder

我有这个查询

$timezone ='';

if(!empty(\Request::get('timezone')))
{
   $timezone = \Request::get('timezone')
}else
{
   $timezone = 'users.timezone'
}


$users = DB::table('users')
                ->where('timezone', $timezone)
                ->get();

如果标准为空或未定义,如何保持显示结果?

1 个答案:

答案 0 :(得分:2)

使用when()方法:

DB::table('users')->when($request->timezone, function($q) {
        return $q->where('timezone', request()->timezone)
    })
    ->get();
  

when方法仅在第一个参数为true时执行给定的Closure。如果第一个参数为false,则不执行Closure

或者,您可以使用where闭合。