2015-09-29 9 views
9

Mój problem polega na tym, że chcę uzyskać dane z tabeli bazy danych z atrybutów created_at, jak tylko dla roku i miesiąca. Kod Próbowałem to:Jak wybrać rok i miesiąc z atrybutów created_at tabeli bazy danych w 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

Masz na myśli, że twoje wyniki zwrotu powinny zawierać wszystkie lata i miesiące danego ** modelu Mjblog **, jeśli tak, to dlaczego to robisz: '$ post-> where ('created_at', $ post) -> get(); '? –

+0

Proszę nieco wyjaśnić swoje pytanie. –

+0

Dokładną potrzebą jest kliknięcie na miesiąc archiwum i rok, w którym należy wyświetlić zawartość tabeli bazy danych, w której znajduje się pole data created_at. –

Odpowiedz

26

Istnieje data pomocnicy dostępne w narzędziu do tworzenia zapytań:

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

Jeśli chcesz dostać rok i miesiąc z jednej instancji Mjblog można je uzyskać dostęp tak:

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

Czytaj więcej o Carbon\Carbongetters documentation.