webentwicklung-frage-antwort-db.com.de

Laravel-5 "LIKE" -Äquivalent (Eloquent)

Ich verwende den folgenden Code, um einige Ergebnisse mit Laravel 5 aus der Datenbank abzurufen.

BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()

Das orWhereLike scheint jedoch keine Ergebnisse zu liefern. Was erzeugt dieser Code in Bezug auf MySQL-Anweisungen?

Ich versuche folgendes zu erreichen:

select * from booking_dates where email='[email protected]' or name like '%John%'

Danke im Voraus.

115
V4n1ll4

Wenn Sie sehen möchten, was in der Datenbank ausgeführt wird, verwenden Sie dd(DB::getQueryLog()), um zu sehen, welche Abfragen ausgeführt wurden.

Versuche dies

BookingDates::where('email', Input::get('email'))
    ->orWhere('name', 'like', '%' . Input::get('name') . '%')->get();
305
Pawel Bieszczad

Ich denke, dies ist besser, wenn man die bewährten Methoden zur Übergabe von Parametern an die Abfrage befolgt:

BookingDates::whereRaw('email = ? or name like ?', [$request->email,"%{$request->name}%"])->get();

Sie können es in der Dokumentation sehen, Laravel 5.5.

Sie können auch den Pfadfinder Laravel verwenden, um die Suche zu vereinfachen. Hier ist die Dokumentation.

0
JaredDmz