我如何在Laravel查询中创建条件检查

时间:2019-06-18 06:48:04

标签: laravel query-builder

嗨,我们如何在laravel查询生成器中实施条件检查

$flag_email =true;    
$query = DB::table('customer');

if($flag_email) {
    $query->where('email','=',$email);
}

if(!$flag_email) {
    $query->where('mobile','=',$email);     
}

$query->get();

4 个答案:

答案 0 :(得分:3)

在此处使用when方法检查条件see

$query = DB::table('customer')
->when($flag_email, function ($query,$email) {
      return $query->where('email', $email);
})
->when(!$flag_email, function ($query,$email) {
      return $query->where('mobile', $email);
})->get();

答案 1 :(得分:2)

您可以使用->when进行条件检查

$query = DB::table('customer')
->when($flag_email, function ($query, $email) {
      return $query->where('email', $email);
})
->when(!$flag_email, function ($query, $email) {
      return $query->where('mobile', $email);
})->get(); 

答案 2 :(得分:1)

三元操作员进行救援:

$query = DB::table('customer')->where($flag_email?'email':'mobile',$email);

答案 3 :(得分:-1)

您可以通过这种方式尝试。这种方式将输出您的愿望。我不确定,这只是一种方法。

$flag_email =true;    
$query = DB::table('customer');  

if($flag_email)
$query = $query->where('email','=',$email);  

if(!$flag_email)
$query = $query->where('mobile','=',$email);   

$result= $query->get();