2016-05-02 7 views
1

Ich möchte die Zeile basierend auf der aktuellen Zeit in Laravel auswählen. Ich habe eine Abfrage, aber es gibt ein leeres Ergebnis. Wie in Laravel rohe Abfrage verwenden

$price_calc = DB::table('trip_price_fixing') 
      ->select(DB::raw("DATE(D.datumTijd), 
    CASE WHEN TIME(D.datumTijd) BETWEEN '08:00:00' AND '14:00:00' THEN 1 
      WHEN TIME(D.datumTijd) BETWEEN '14:00:00' AND '20:00:00' THEN 2 
      WHEN TIME(D.datumTijd) BETWEEN '20:00:00' AND '24:00:00' THEN 3 
    END ")); 

Antwort

0

Versuchen Sie separate Felder in ausgewählten und benennen Sie die secound aggregierten Feld (in meinem Beispiel ist result):

$price_calc = DB::table('trip_price_fixing') 
     ->select(DB::raw("DATE(D.datumTijd) as date", 
       DB::raw("(CASE WHEN TIME(D.datumTijd) BETWEEN '08:00:00' AND '14:00:00' THEN 1 
          WHEN TIME(D.datumTijd) BETWEEN '14:00:00' AND '20:00:00' THEN 2 
          WHEN TIME(D.datumTijd) BETWEEN '20:00:00' AND '24:00:00' THEN 3 
END) as result"))->get(); 

Ich denke auch, dass Sie die D. Namespace aus der Abfrage löschen haben.

+0

danke filip.how, um den Wert von $ price_calc mit Ergebnis zu erhalten ?? –

+0

Ich habe meine Antwort aktualisiert. Um die Ergebnisse zu erhalten, müssen Sie über '$ price_calc 'iterieren, was die Sammlung von Ergebnisdatensätzen ist. Wenn Sie das einzige Ergebnis erhalten, können Sie auf folgendes zugreifen: '$ record-> result'. Sie können mehr über Laravels Dokumente lesen. –

+0

ich bin versuchen, das Ergebnis leer Ergebnis foreach ($ price_calc wie $ res) \t \t { \t \t \t echo $ res geben iterieren?; \t \t} –

Verwandte Themen