Laravel-5 LIKE-äquivalenter (eloquenter) Abfragevergleich
Diese Frage untersucht die Verwendung des LIKE-Operators in Datenbankabfragen mit Laravel-5 Beredt. Der bereitgestellte Code:
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', Input::get('name'))->get()
zielt darauf ab, Ergebnisse abzurufen, die entweder mit der angegebenen E-Mail übereinstimmen oder eine bestimmte Zeichenfolge im Namensfeld enthalten. Die orWhereLike-Bedingung führt jedoch zu keinen Ergebnissen.
Die Absicht besteht darin, eine Abfrage zu erstellen, die entspricht:
select * from booking_dates where email='[email protected]' or name like '%John%'
Lösung
An Um dieses Problem zu beheben, wird empfohlen, in der LIKE-Klausel „%...“% anstelle von „…“ zu verwenden. Dadurch wird sichergestellt, dass jede angegebene Zeichenfolge im gewünschten Feld gefunden werden kann. Alternativ können Sie ->whereLike anstelle von ->orWhereLike für eine sauberere Syntax verwenden:
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', '%' . Input::get('name') . '%') ->get();
Datenbankprotokollierung
Wenn Sie Probleme mit dem haben Bei generierten SQL-Abfragen können Sie die Funktion dd(DB::getQueryLog()) verwenden, um die ausgeführten Abfragen zu überprüfen und mögliche Fehler zu identifizieren. Dies kann Ihnen bei der Fehlerbehebung helfen und sicherstellen, dass Ihre Abfragen wie erwartet funktionieren.
Das obige ist der detaillierte Inhalt vonWie verwende ich den LIKE-Operator korrekt mit „orWhere' von Laravel 5 Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!