嗨,我们如何在laravel查询生成器中实施条件检查
$flag_email =true;
$query = DB::table('customer');
if($flag_email) {
$query->where('email','=',$email);
}
if(!$flag_email) {
$query->where('mobile','=',$email);
}
$query->get();
答案 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();