Création de requêtes avec plusieurs clauses WHERE à l'aide de Laravel Eloquent
Considérez le scénario suivant : vous utilisez le générateur de requêtes Eloquent de Laravel et devez créer une requête avec plusieurs clauses WHERE ciblant différentes conditions. Bien qu'il soit possible de le faire avec plusieurs appels de méthode Where, cette approche peut devenir répétitive et lourde.
Pour résoudre ce problème, Laravel propose plusieurs options alternatives pour construire de telles requêtes de manière plus élégante.
Utiliser un tableau de conditions dans où
Depuis Laravel 5.3, vous pouvez spécifier plusieurs conditions dans un tableau passé à la méthode Where :
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '<>', 'value_2'], // ... ]);
Utilisation d'un tableau dans Where
Avant Laravel 5.3, vous pouviez également utiliser un tableau pour spécifier des conditions dans Where :
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $results = User::where($matchThese)->get();
Utilisation orWhere
Vous pouvez également regrouper les conditions en utilisant orWhere :
$results = User::where($matchThese) ->orWhere($orThose) ->get();
Requête SQL résultante
L'utilisation de la méthode orWhere générera un requête similaire à celle-ci :
SELECT * FROM users WHERE (field = value AND another_field = another_value AND ...) OR (yet_another_field = yet_another_value AND ...)
Ces techniques vous permettent de créer requêtes avec plusieurs clauses WHERE de manière plus concise et maintenable.
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!