J'appelle une URL avec des paramètres de recherche dynamiques. Comment pourrais-je former une requête appropriée Eloquent ?
En théorie:
J'ai besoin de ce type de structure pour pouvoir utiliser la clause where si param existe . S'il existe un autre moyen à Laravel, veuillez me le faire savoir.
C'est facile avec Laravel. Faites juste quelque chose comme ça:
$query = User::query();
if ($this == $that) {
$query = $query->where('this', 'that');
}
if ($this == $another_thing) {
$query = $query->where('this', 'another_thing');
}
if ($this == $yet_another_thing) {
$query = $query->orderBy('this');
}
$results = $query->get();
You can use like this
$validateUserDetail = User::query();
if (!empty($userDetails['email'])) {
$validateUserDetail->whereemail($userDetails['email']);
}if (!empty($userDetails['cellphone'])) {
$validateUserDetail->wherecellphone($userDetails['cellphone']);
}
$validateUserDetail->select('username');
$validateUserDetail->get()
Je suis venu ici de Google. Si vous allez parcourir plus de 5 instructions if, il est plus efficace d'utiliser une instruction switch
if(empty($request->except('_token')))
return 'false';
$models = Vehicle::query();
$request_query = $request->all();
$year_switch = false;
foreach ($request_query as $key => $field_value){
if($field_value != 'any'){
switch($field_value){
case 'X':
case 'Y':
$year_switch = true;
break;
case'Z':
//Dynamic
$models->where($key,'LIKE', $field_value);
break;
}
}
}
Vous pouvez passer la valeur dynamique par exemple ci-dessous
$user_auctions = $this->with('userAuctions')
->where('users.id', '=', $id)
->get();