Dans cet article, nous implémentons laravel éloquent when condition. Dans le processus de filtrage, nous utilisons la condition if-else sur demande. Vérifiez le code ci-dessous.
if($request->filter_by == 'amount') { $query->where('amount', '>', request('amount', 0)); } if($request->filter_by == 'created_at') { $query->orderBy('created_at', request('order', 'desc')); }
Vous pouvez utiliser la méthode when(). Il est plus lisible et convivial. Vérifiez le code ci-dessous.
$query = Order::query(); $query->when(request('filter_by') == 'amount', function($q){ return $q->where('amount','>', request('amount',0)); }); $query->when(request('filter_by') == 'created_at', function($q){ return $q->orderBy('created_at', request('order','desc')); });
Vous pouvez transmettre le troisième argument à la méthode when. Cette fermeture ne s'exécutera que si le premier argument est évalué comme faux.
$query = Order::query(); $query->when(request('filter_by') == 'amount', function($q){ return $q->where('amount','>', request('amount',0)); }, function($q){ return $q->orderBy('created_at', request('order','desc')); })->get();
Ce n'est pas seulement une façon plus jolie d'écrire le même "IF", mais c'est aussi un excellent moyen d'organiser les requêtes conditionnelles.
Vous pouvez en savoir plus sur ce type d'article sur le site
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3