Maison >développement back-end >tutoriel php >Comment créer des requêtes OR et AND complexes avec Eloquent de Laravel ?
Requêtes complexes dans Laravel : OU et ET avec Eloquent Query Builder
Lors de la création de requêtes complexes dans Laravel, il peut y avoir des cas où vous avez besoin combinant plusieurs conditions avec les opérateurs OR et AND. Comment cela peut-il être réalisé à l'aide du générateur de requêtes Eloquent ?
Requêtes OR..AND avec regroupement logique
Pour les requêtes impliquant des conditions OR suivies de conditions AND, Laravel 7. x/4.2 offre une solution pratique : le regroupement logique. Considérons la requête suivante :
WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)
Grâce au regroupement logique, cette requête peut être traduite comme suit :
Model::where(function ($query) { $query->where('a', '=', 1) ->orWhere('b', '=', 1); }) ->where(function ($query) { $query->where('c', '=', 1) ->orWhere('d', '=', 1); });
Cette approche vous permet de définir plusieurs conditions OU imbriquées.
Requêtes complexes : SQL brut
Bien que la technique de regroupement logique soit idéale pour Des requêtes OR..AND plus simples, des scénarios plus complexes peuvent nécessiter l'utilisation de SQL brut. Voici un exemple :
Model::whereRaw( '(a = 1 OR b = 1) AND (c = 1 OR d = 1)' );
En résumé :
La fonctionnalité de regroupement logique d'Eloquent fournit une solution élégante pour les requêtes OR..AND. Toutefois, pour des scénarios plus complexes, le SQL brut peut offrir une flexibilité et un contrôle accrus. Considérez l'approche appropriée en fonction de la complexité de votre requête.
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!