Maison >base de données >tutoriel mysql >Comment utiliser correctement l'opérateur LIKE avec « orWhere » de Laravel 5 Eloquent ?

Comment utiliser correctement l'opérateur LIKE avec « orWhere » de Laravel 5 Eloquent ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 00:56:11961parcourir

How to Correctly Use the LIKE Operator with Laravel 5 Eloquent's `orWhere`?

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!

Déclaration:
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