【问题标题】:Chunk data and Display with header in Laravel view块数据并在 Laravel 视图中显示标题
【发布时间】:2021-07-18 20:29:33
【问题描述】:

我有数据需要在 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

我怎样才能做到这一点?

【问题讨论】:

    标签: php laravel laravel-views


    【解决方案1】:

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

        @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
    

    【讨论】:

      【解决方案2】:

      对于您在刀片中使用的每个 @foreach 循环,您在范围内都有 $loop,它也可以随着循环内的循环进行缩放

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

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

      @foreach($items as $item)
      
          @if($loop->iteration % 3 == 0)
              //output header row
          @endif
      
          //output $item
      
      @endforeach
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2023-01-08
        • 2021-08-11
        • 2016-09-09
        相关资源
        最近更新 更多