Как я могу создать условную проверку в запросе laravel - PullRequest
1 голос
/ 18 июня 2019

привет, как мы можем реализовать проверки условий в построителе запросов 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 ]

3 голосов
/ 18 июня 2019

используйте 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 голосов
/ 18 июня 2019

вы можете использовать ->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(); 
1 голос
/ 18 июня 2019

троичный оператор на помощь:

$query = DB::table('customer')->where($flag_email?'email':'mobile',$email);
0 голосов
/ 18 июня 2019

Вы можете попробовать этим способом.Этот способ выведет ваше желание один.Это просто способ, я не уверен, это правильный путь.

$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();
...