Цикл Laravel foreach в ячейках HTML Blade Table, которые охватывают много столбцов - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь показать таблицу в лезвии laravel, такую ​​же как на изображении ниже enter image description here

В таблице блейдов HTML Чтобы сделать интервал ячейки более чем одной строкой, яиспользуйте атрибут rowspan.Но когда я пытаюсь сделать это с помощью foreach в режиме просмотра лезвий, он не работает идеально.цикл по каждому элементу возвращает команду raw три раза.

вот мой код клинка

@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 голосов
/ 23 сентября 2018

Строка команды возвращается три раза, потому что она находится в foreach. Если rowspan является статическим значением, вы можете попробовать использовать следующий код:

@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 и выше

Для динамического rowapn, попробуйте следующий код:

@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

change how_many_members свойство соответствует названию поля вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...