2014-08-28 93 views
0

有沒有辦法對你的產品做一個foreach,並按category_id排序,並在產品上方顯示類別名稱。 (我使用laravel 4作爲框架)如何在不影響每一行的情況下進行foreach?

一例的輸出應該是什麼樣子:

Chairs 

wooden chair number 1 

pretty chair number 1 

pretty chair number 2 

Doors 

tall door number 1 

white door number 1 

關鍵問題:如何讓我不必每行上面的類別名稱一個foreach?

希望我提出了我的問題/問題清楚,有人可以幫助我!

這是我走到這一步:

不過,當我做我的foreach在刀片我會得到錯誤:「未定義指數」

我在我的控制器使用的的foreach:

foreach($results as $result) { 
     $category[$result->category_id][] = $result; 
    } 

我在刀片的foreach:

@foreach ($category as $key => $product) 
     <tr> 
      <td>{{ $product[$key]['created_at'] }}</td> 
      <td>{{ $product[$key]['order_id'] }}</td> 
      <td>{{ $product[$key]['name'] }}</td> 
     </tr> 
    @endforeach 
+0

什麼是你得到的輸出?錯誤消息? – eluong 2014-08-28 16:58:20

+0

未定義的索引:(mybladefile)-----當我填充而不是$ key時,它的值爲0或1。但是,當我var_dump $鍵輸出1 – yinshiro 2014-08-28 16:59:15

回答

1

您正試圖使用​​CATEGORY_ID從$產品,這是陣列0-X指數取$產品。爲了簡單起見,我會忽略HTML格式和語法,因爲我從來沒有使用框架提到...

@foreach ($category as $key => $products) 
     echo 'Category #', $key 

     @foreach ($products as $product) 
     <tr> 
     <td>{{ $product['created_at'] }}</td> 
     <td>{{ $product['order_id'] }}</td> 
     <td>{{ $product['name'] }}</td> 
     </tr> 
     @endforeach 

@endforeach 
+0

這應該是解決方案。我要提到的是,他錯誤地使用了錯誤索引上的$ key(用於$ product而不是$ category) – eluong 2014-08-28 17:02:38

+0

這確實是解決方案,至少據我所知。謝謝 !! – yinshiro 2014-08-28 17:06:53

+0

我慶祝得太早:P第一個foreach下面的類別名稱(你的回聲是)。將所有產品下而不是每個產品的循環之下。我該如何解決這個問題:S – yinshiro 2014-08-28 17:14:32

0

不能完全確定我unders解決問題。但如果即時通訊嘗試組織一個數組..我可能會在foreach循環中使用條件語句。我不知道你的問題是很清楚..看到如果這有助於在所有

foreach($results as $result) { 

    // just an example.. i narrow down what I push into my category array 
    if($result->type == 'whatever'){ 
     $category[$result->category_id][] = $result; 
    } 

} 
相關問題