Я пытаюсь создать автоматически сгенерированную таблицу, которая является частью проекта, который я пытаюсь сделать. Я пытаюсь создать дежурный список для группы из 14 человек. Сдвиги следующие:
Смена 1: 4 персонала
Смена 2: 4 персонала
Смена 3: 4 персонала
Вне службы: 2 сотрудника
Чтобы упростить этот процесс, я назначил каждому сотруднику номер от 1 до 14.
Вот код, но он не работает как раз.
<table>
<tr>
<th>Shift 1</th>
<th>Shift 2</th>
<th>Shift 3</th>
<th>Off</th>
</tr>
@for ($i = 1; $i <= 30 ; $i++)
<tr>
@for ($j = 1; $j <= 4 ; $j++)
<th>
@if ($j==1)
@for ($h = 1; $h <= 4 ; $h++)
{{ $h }},
@endfor
@endif
@if ($j==2)
@for ($h = 5; $h <= 8 ; $h++)
{{ $h }},
@endfor
@endif
@if ($j==3)
@for ($h = 9; $h <= 12 ; $h++)
{{ $h }},
@endfor
@endif
@if ($j==4)
@for ($h = 13; $h <= 14 ; $h++)
{{ $h }},
@endfor
@endif
</th>
@endfor
</tr>
@endfor
Приведенный выше код дает мне таблицу, как показано ниже:
Конечная цель состоит в том, чтобы произвести что-то как ниже:
Любая помощь высоко ценится. 🙂
Вы должны сделать это в PHP и установить для Blade только отображаемые данные, потому что в Blade трудно назначать переменные без изменений или hack
,
Вот что я сделал:
<table>
<tr>
<th>Shift 1</th>
<th>Shift 2</th>
<th>Shift 3</th>
<th>Off</th>
</tr>
{{-- */$last=1;/* --}}
@for ($i = 1; $i <= 30 ; $i++)
<tr>@for ($j = 0; $j < 14 ; ++$j)
@if ($j %4 == 0)
<th>
@endif
@if ($j + $last > 14)
{{-- */$last= -$j + 1 ;/* --}}
@endif
{{ $j + $last }}
@if ($j %4 == 3)
</th>
@endif
@endfor
</th>
{{-- */
$last=$j + $last -2;
if ($last > 14) {
$last = 1;
}
/* --}}</tr>
@endfor
Вывод как на экране ниже
Других решений пока нет …