2014-08-28 55 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; 
    } 

} 
相关问题