2016-05-03 59 views
-1

我有一個博客表,我有一個名爲pinned的專欄,這些專欄基本上是博客帖子,它們應該位於頂部,並在所有固定的博客頂部標題爲pinnedLaravel - groupBy查詢 - 按類別分組結果

例如,

Pinned 
---------- 
Pinned Blog title 1 
Pinned Blog title 2 
----------- 
Regular 
------------ 
Normal blog title 1 
Normal blog title 2 

我該如何做到這一點與foreach循環和laravel groupBy查詢?

我到目前爲止查詢:

$blogs = Blog::where('active', 1)->get()->groupBy('pinned'); 

這給了我博客的兩個陣列;固定和規則。

到目前爲止這麼好。但我不知道如何做這個foreach循環...請幫助。

我嘗試以下,但沒有幫助..

foreach ($blogs as $blog) { 
     foreach ($blog as $item) { 
      if($item->pinned) 
       echo 'Pinned'; 
      echo($item->title); 
     } 
    } 

謝謝!

+1

我給你在這裏3個備選方案:http://stackoverflow.com/questions/36783142/laravel -foreach-loop-show-a-specific-message-for-types-of-result –

+0

這不是SQL分組的工作原理。將組行分成一行,它不會以某種方式添加額外的行,以便您瞭解組的開始/結束位置。 – Andrius

+1

@AlexeyMezenin哇,我什至沒有看到。謝謝。 –

回答

0

您的查詢應該是:

$blogs = Blog::where('active', 1)->groupBy('pinned')->get(); 

而且foreach循環可能是這樣

foreach ($blogs as $blog) { 
    if($blog->pinned) 
     echo 'Pinned'; 
    else echo($blog->title); 
}