跨越许多列的HTML Blade表单元中的Laravel foreach循环

时间:2018-09-23 06:53:10

标签: laravel

我正在尝试在Laravel刀片中显示一张与下图相同的表格 enter image description here

在HTML Blade表中为了使一个单元格跨越多行,我使用了rowpan属性。但是,当我尝试在刀片视图中使用foreach进行操作时,它无法完美运行。 foreach循环将团队原始数据返回三遍。

这是我的刀片服务器代码

@foreach($datas as $data)
  <tr>
  <td rowspan="3">{{$data->team_name}}</td>
<td>{{$data->name}}</td>
<td>{{$data->email}}</td>
<td>{{$data->phone}}</td>
</tr>
@endforeach

请帮助。

1 个答案:

答案 0 :(得分:2)

团队行返回3次,因为它位于foreach中,如果rowpan是静态值,则可以尝试以下代码:

@foreach($datas as $key => $data)
  <tr>
     @if ($key == 0 || $key % 3 == 0)
         <td rowspan="3">{{$data->team_name}}</td>
     @endif
     <td>{{$data->name}}</td>
     <td>{{$data->email}}</td>
     <td>{{$data->phone}}</td>
  </tr>
@endforeach

Laravel 5.2及更高版本

对于动态rowsapn,请尝试以下代码:

@php
   $rowid = 0;
   $rowspan = 0;
@endphp
@foreach($datas as $key => $data)
  @php
     $rowid += 1
  @endphp
  <tr>
     @if ($key == 0 || $rowspan == $rowid)
         @php
             $rowid = 0;
             $rowspan = $data->how_many_members;
         @endphp
         <td rowspan="{{ $rowspan }}">{{$data->team_name}}</td>
     @endif
     <td>{{$data->name}}</td>
     <td>{{$data->email}}</td>
     <td>{{$data->phone}}</td>
  </tr>
@endforeach

更改how_many_members属性适合您的模型字段名称。