0

我有需要在 Laravel 刀片视图中显示 3 行标题的数据。我知道 Laravel 中有 chunk 方法来分块数据并显示。但我想以不同的方式显示数据。

这是我的数据

Illuminate\Support\Collection {#1898 ▼
#items: array:2 [▼
  0 => {#1021 ▼
  +"parameter": "NH3 Examine"
  +"id": 6
  +"pond_quality_id": 5
  +"parameter_id": 28
  +"pond_water_cig": 12
  +"pond_water_non_cig": 12
  +"taken_actions_cig": 12
  +"taken_actions_non_cig": 12
  +"taken_actions": "action"
  +"measure_before_intervention": "before"
  +"measure_after_intervention": "after"
  +"remarks": "remarks1"
  +"created_at": "2021-04-25 10:16:00"
  +"updated_at": "2021-04-25 10:16:00"
}
1 => {#1897 ▼
  +"parameter": "O2 Examine"
  +"id": 7
  +"pond_quality_id": 5
  +"parameter_id": 29
  +"pond_water_cig": 23
  +"pond_water_non_cig": 23
  +"taken_actions_cig": 23
  +"taken_actions_non_cig": 23
  +"taken_actions": "action taken"
  +"measure_before_intervention": "before intervention"
  +"measure_after_intervention": "after intervention"
  +"remarks": "remarks2"
  +"created_at": "2021-04-25 10:16:00"
  +"updated_at": "2021-04-25 10:16:00"
}
]
}

这是我想要输出数据的方式

col1 col2 col3 col4
col1 val1 col2 val1 col3 val3 col4 val4
col1 val2 col2 val2 col3 val3 col4 val4
col5 col6 col7 col8
col5 val1 col6 val1 col7 val3 col8 val4
col5 val2 col6 val2 col7 val3 col8 val4
col9
col9 val1
col9 val2

我怎样才能做到这一点?

4

2 回答 2

0

实现预期结果的更好方法是块功能。简单干净。

    @foreach($items->chunk(2) as $chunk)
      <div class="s-table-container">
        <table class="s-table">
          <thead>
            <tr>
              <th>Id</th>
              <th>parameter</th>
              <th>pond_quality_id</th>
              <th>pond_water_cig</th>
             </tr>
           </thead>
           <tbody>
             @foreach($chunk as $item)
               <tr>
                 <td>{{$item->id}}</td>
                 <td>{{$item->parameter}}</td>
                 <td>{{$item->pond_quality_id}}</td>
                 <td>{{$item->pond_water_cig}}</td>
               </tr>
             @endforeach
           </tbody>
         </table>
       </div>
     @endforeach
于 2021-04-25T19:52:19.673 回答
0

$loop您在刀片中使用的每个循环都在范围内@foreach,这也与循环内的循环一起扩展

这是一个如何实现您想要的示例的示例;每第三行,添加您选择的标题。您可能需要在那里使用模数 - 我确定 3 是正确的,但考虑到$loop->iteration从 1 开始,而不是 0,我可能是错的。

请参阅:https$loop variable ://laravel.com/docs/8.x/blade在上下文中的更多用法@foreach

@foreach($items as $item)

    @if($loop->iteration % 3 == 0)
        //output header row
    @endif

    //output $item

@endforeach

您需要为您的标题行定义一组规则,考虑到您有 3 个相同的表,但您的第四个似乎有 1 个标题并且是唯一的,您可能需要创建一个辅助函数,允许您包含依赖于的视图在刀片中使用多个@if语句的迭代。

于 2021-04-25T16:37:46.813 回答