我是Laravel的新手,現在我一直在努力掙扎太久,試圖搜索SO和谷歌的信息,但無法解決這個問題。Laravel 5從數據庫結果形成另一個陣列
我在創建博客,需要製作某種導航/存檔,顯示年份和月份以及每年和每個月有多少博客文章。通過點擊這些年份/月份,我會在該時間段內以不同的視圖顯示帖子。
我希望他們能夠顯示在這樣的觀點:
2015 (10)
January(3)
February(3)
March(3)
April(1)
2014 (2)
May(1)
June(1)
等。
我得到了數據庫查詢這樣的:
$links = \DB::table('posts')
->select(\DB::raw('YEAR(created_at) year, MONTH(created_at) month, MONTHNAME(created_at) month_name, COUNT(*) id'))
->where('active',1)
->groupBy('year')
->groupBy('month')
->orderBy('year', 'desc')
->orderBy('month', 'desc')
->get();
這使我的表是這樣的:
array:3 [
0 => {#275
+"year": "2015"
+"month": "10"
+"month_name": "October"
+"id": "3"
}
1 => {#274
+"year": "2015"
+"month": "9"
+"month_name": "September"
+"id": "1"
}
2 => {#273
+"year": "2014"
+"month": "8"
+"month_name": "August"
+"id": "1"
}
]
我怎樣才能將它打印在我看來像我描述? 如果我去遍歷數組中的觀點是這樣的:
@foreach($links as $link)
<h3 class="text-uppercase"><a href="{{ url('blog/'.$link->year) }}">{{ $link->year }}</a></h3>
<p><small class="blog_date"><a href="{{ url('blog/'.$link->year.'/'.$link->month) }}">{{ $link->month_name }} ({{ $link->id }}) </a></small>
@endforeach
我試圖用的foreach循環在我的控制器來從DB-結果另一個數組,其中結構將是正確的形式,我可以只使用的foreach在視圖上打印它,但不能得到它的工作。
我知道我接近解決方案,但我還在學習。請有人告訴我哪個是最好的方法來做到這一點。
這是我實際嘗試先做的事,但無法正常工作。解決方案看起來有點難看,但它仍然有效。謝謝! – mpak