2017-01-08 8 views
0

Ich habe versucht, erweiterte where-KlauselnLaravel 5 Query-Builder

Ich habe Modell mit 2 Datetime-Spalten start und end

die Anfrage kommt zwei Werte date_start, date_end

meinen Code

->where(function($q) use ($date_start,$date_end) { 
       $q->where('start','>=',$date_start) 
        ->where('end','<=',$date_start) 
        ->where('start','>=',$date_end) 
        ->where('end','<=',$date_end); 
      }) 
      ->first(); 

Code zurückgegeben nichts als in der Tabelle haben einen Datensatz, Werte auf Anfrage geeignet. Was ist falsch?

+0

Was ist die Datensätze Anfangs- und Endwert und welche Anfangs- und Endwert sind vorbei Sie gegen vergleichen? –

+0

Was erwarten Sie von diesem Zustand? Ich denke, es kann die Bedingung nur übereinstimmen, wenn Ihr Datensatz in der Datenbank Startdatum> = Enddatum und $ date_start hat und $ date_end innerhalb von [end, start] liegt. – gie3d

+0

Wenn Sie Daten vergleichen, können Sie 'whereDate' verwenden –

Antwort

0

arbeitete

$q->where('start','<=',$date_start) 
    ->where('start','<',$date_end) 
    ->where('end','<=',$date_end);