Maison > base de données > tutoriel mysql > Comment transmettre des variables dans les clauses Where de Laravel Advanced ?

Comment transmettre des variables dans les clauses Where de Laravel Advanced ?

Patricia Arquette
Libérer: 2024-12-17 07:01:25
original
851 Les gens l'ont consulté

How to Pass Variables into Laravel Advanced Where Clauses?

Passer des variables dans les clauses Where avancées de Laravel

Dans les situations où vous devez transmettre des variables externes dans une clause Where avancée de Laravel, par exemple lors du filtrage des résultats à l'aide de paramètres définis par l'utilisateur critères de recherche, la syntaxe par défaut fournie dans la documentation peut ne pas suffire.

Heureusement, il existe une solution plus pratique utilisant l'utilisation mot-clé, qui vous permet de capturer des variables de la portée parent dans la fermeture qui définit la clause Where. Par exemple :

DB::table('users')->where(function($query) use ($searchQuery) {
    $query->where('name', 'LIKE', '%'.$searchQuery.'%')
        ->orWhere('address', 'LIKE', '%'.$searchQuery.'%');
});
Copier après la connexion

Dans cet exemple, la variable $searchQuery est transmise de la portée parent à la fermeture et peut être utilisée dans la clause Where. Le mot-clé use garantit que la variable est capturée par référence, ce qui permet d'y accéder et de la modifier dans la fermeture.

Alternativement, avec l'introduction des fonctions fléchées de PHP 7.4, vous pouvez obtenir le même résultat avec un syntaxe plus concise :

DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%')
    ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'));
Copier après la connexion

Les fonctions fléchées capturent automatiquement les variables de la portée parent, éliminant ainsi le besoin de les répertorier explicitement à l'aide de use. Cependant, il est important de noter que les fonctions fléchées renvoient toujours une valeur et nécessitent l'omission du mot-clé return.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal