Passer des variables dans les Wheres avancés de Laravel
Dans Laravel, utiliser des sous-requêtes avec la méthode WhereExists peut être simple. Cependant, des défis surviennent lorsque des variables externes doivent être intégrées au processus de fermeture. L'utilisation de variables externes, telles que $this->city->id, peut rendre le code moins efficace.
Solution : Utiliser le mot-clé 'use'
Pour résoudre ce problème, le mot-clé use permet de transmettre les variables nécessaires dans la fermeture à partir de la portée parent. Cette approche permet une utilisation pratique de variables externes dans la fermeture.
Par exemple :
DB::table('users') ->where(function ($query) use ($activated) { $query->where('activated', '=', $activated); }) ->get();
Mise à jour PHP 7.4 : fonctions fléchées
PHP 7.4 introduit les fonctions fléchées, une forme plus concise de fonctions anonymes. Cela fournit un moyen encore plus simplifié de transmettre des variables dans des fermetures.
Voici un exemple utilisant des fonctions fléchées dans PHP 7.4 :
DB::table('users') ->where(fn($query) => $query->where('activated', '=', $activated)) ->get();
Par rapport à la syntaxe normale, les fonctions fléchées présentent les différences suivantes :
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!