2016-08-09 103 views
0

Ich habe ein Problem bei der Auswahl des Monats nur von der datetime. Ich habe eine Spalte mit dem Namen payment_date in der Tabellentransaktion. Ich möchte select * from transaction und group by Monat payment_date. Ich habe versucht mit diesem Code:Nur Monat auswählen von Datum in Laravel

$selectedYearTrx = $connectDB->table('transaction')         
    ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
    ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
    ->whereYear('payment_date', '=', $year) 
    ->where('status','=','S') 
    ->wherein('payment_channel_id', [1,2,3]) 
    ->where('currency','=','IDR') 
    ->orderBy('id', 'desc') 
    ->get() 
    ->groupBy('payment_channel_id','id','monthPayment'); 

Aber ich bin von in monthPayment Gruppen Fehler. Der Fehler ist Aufruf einer Elementfunktion groupby().

Kann mir jemand helfen, dieses Problem zu lösen?

Vielen Dank.

Antwort

0

sollten Sie setzen -> get() am Ende des Codes)

$selectedYearTrx = $connectDB->table('transaction')         ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
           ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
           ->whereYear('payment_date', '=', $year) 
           ->where('status','=','S') 
           ->wherein('payment_channel_id', [1,2,3]) 
           ->where('currency','=','IDR') 
           ->orderBy('id', 'desc') 
           ->get() 
           ->groupBy('payment_channel_id','id','monthPayment'); 

mein schlechten

$selectedYearTrx = $connectDB->table('transaction')         ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
           ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
           ->whereYear('payment_date', '=', $year) 
           ->where('status','=','S') 
           ->wherein('payment_channel_id', [1,2,3]) 
           ->where('currency','=','IDR') 
           ->orderBy('id', 'desc') 

           ->groupBy('payment_channel_id','id','monthPayment')->get(); 
+0

Oh sein sollte, vielen Dank für dieses @Nour, aber ich neue Fehlermeldung angezeigt in 'DB :: roh ('MONAT (Zahlungsdatum) als Monatszahlung')'. Ich habe den Fehler so: 'Funktionsmonat (Zeitstempel ohne Zeitzone) existiert nicht. Kannst du mir helfen, mit diesem Fehler umzugehen? –