2015-09-29 2 views
9

Mein Problem ist, dass ich Daten aus der Datenbanktabelle von den created_at Attributen nur pro Jahr und Monat erhalten möchte. Der Code, den ich versucht habe, ist:Wie wählt man Jahr und Monat aus den created_at Attributen der Datenbanktabelle in Laravel 5.1?

$post= Mjblog::select(DB::raw('YEAR(created_at) year, MONTH(created_at) month')); 
$posts_by_y_m = $post->where('created_at',$post)->get(); 
+0

Sie meinen, dass Ihre Rückkehrergebnisse alle Jahre und Monate des gegebenen ** Mjblog ** Modells enthalten sollten, wenn ja, warum tun Sie das dann: '$ post-> where ('created_at', $ post) -> get(); '? –

+0

Bitte klären Sie Ihre Frage ein wenig. –

+0

Mein genaues Bedürfnis ist, wenn ich auf Archiv Monat und Jahr klicken würde, um den Inhalt der Datenbanktabelle anzuzeigen, in der created_at Datumfeld ist. –

Antwort

26

Es gibt Datum Helfer in der Query Builder:

$post = Mjblog::whereYear('created_at', '=', $year) 
       ->whereMonth('created_at', '=', $month) 
       ->get(); 
3

Wenn Sie das Jahr und den Monat aus einer einzigen Instanz von Mjblog können Sie auf diese zugreifen zu wollen dies wie:

$year = $post->created_at->year; 
$month = $post->created_at->month; 

Lesen Sie mehr über Carbon\Carbongetters documentation.