Comparaison des requêtes équivalentes (éloquentes) Laravel-5 LIKE
Cette question explore l'utilisation de l'opérateur LIKE dans les requêtes de base de données avec Laravel-5 Éloquent. Le code fourni :
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', Input::get('name'))->get()
vise à récupérer les résultats qui correspondent soit à l'e-mail spécifié, soit à ceux qui contiennent une certaine chaîne dans le champ du nom. Cependant, la condition orWhereLike ne produit aucun résultat.
L'intention est de créer une requête équivalente à :
select * from booking_dates where email='[email protected]' or name like '%John%'
Solution
Pour pour résoudre ce problème, il est recommandé d'utiliser '%...'% au lieu de '...' dans la clause LIKE. Cela garantit que toute chaîne spécifiée peut être trouvée dans le champ souhaité. Vous pouvez également utiliser ->whereLike au lieu de ->orWhereLike pour une syntaxe plus claire :
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', '%' . Input::get('name') . '%') ->get();
Journalisation de la base de données
Si vous rencontrez des problèmes avec le requêtes SQL générées, vous pouvez utiliser la fonction dd(DB::getQueryLog()) pour inspecter les requêtes exécutées et identifier les erreurs potentielles. Cela peut vous aider à résoudre les problèmes et à garantir que vos requêtes fonctionnent comme prévu.
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!