In Laravel, habe ich zwei Tabellen namens Booking und Clients. Für eine bestimmte Buchung habe ich eine Beziehung zu einem einzelnen Kunden. Alles funktioniert gut, wenn ich einen Kunden nach einer Buchung frage, außer wenn ich oderWhere einschließe. Bitte sehen Sie sich das unten stehende Code-Snippet an.oderWenn nicht mit Laravel eloquent Beziehung Abfrage
if($client_name!=null)
{
$client_name='%'.$client_name;
$bookings=$bookings->whereHas('client',function($q) use ($client_name){
$q->where('first_name','LIKE',$client_name)
//->orWhere('last_name','LIKE',$client_name);
});
}
Mit dem kommentierten aus orWhere Linie, erhalte ich die richtigen Buchungen mit dem Kunden mit first_name
wie vom Benutzer angegeben. Aber wenn ich oder in der Abfrage für last_name
verwende, werden alle Zeilen angezeigt, als wenn last_name
für jede Zeile übereinstimmen.
Was ist los damit? Hilfe bitte.
Überprüfen Sie die Abfrage, die mit 'DB :: getQueryLog()' zum Beispiel –
ausgeführt wird Folgendes ist die letzte Ausgabe: Wählen Sie * aus 'Drosselung' wo 'user_id' =? Limit 1. Ich verwende das Sentry-Paket zur Authentifizierung. Die obige Abfrage wird auf der Admin-Seite ausgeführt. – sangam
Dies sagt uns nichts, überprüfen Sie die Tabelle für Clients. Führen Sie einfach den Code, den Sie eingefügt haben und sofort 'dd (DB :: getQueryLog())' oder einfach in CLI mit artisan tinker –