Maison > développement back-end > tutoriel php > Comment créer des requêtes OR et AND complexes avec Eloquent de Laravel ?

Comment créer des requêtes OR et AND complexes avec Eloquent de Laravel ?

Mary-Kate Olsen
Libérer: 2024-11-27 20:14:10
original
1072 Les gens l'ont consulté

How to Build Complex OR and AND Queries with Laravel's Eloquent?

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)
Copier après la connexion

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);
});
Copier après la connexion

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)'
);
Copier après la connexion

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!

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