如何:foreach而不影响每一行?

时间:2014-08-28 16:52:14

标签: php laravel foreach blade

有没有办法对例如您的产品进行预测,并按category_id对其进行排序,并在产品上方显示类别名称。 (我使用laravel 4作为框架)

示例输出应该是什么样的:

Chairs

 wooden chair number 1

 pretty chair number 1

 pretty chair number 2

Doors

 tall door number 1

 white door number 1

关键问题:如何在没有每行上方的类别名的情况下制作一个foreach?

希望我明白我的问题/问题,有人可以帮助我!

这是我到目前为止所得到的:

但是,当我在刀片中执行foreach时,我会收到错误:“Undefined index”

我在控制器中使用的foreach:

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

我在剑刃中的预告:

    @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

2 个答案:

答案 0 :(得分:1)

您正在尝试使用category_id从$ products中获取$ product,这是具有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

答案 1 :(得分:0)

不完全确定我理解这个问题。但如果我试图组织一个数组..我可能会在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;
    }

}