Я использую функцию, для того чтобы сократить код и чтобы не было повторяющего кода во вьюшке, но не получается внутри функции реализовывать foreach. Если я верну значение foreach то выборка будет только одна, а все остальное он не обрабатывает. Если echo делать вместо return то запись попадается не там где надо. То есть нужно чтобы записывалась внутри ячейке td А отображается за этим тегом
function shift($shop_id, $day){
$monday = Shifts::find()->andWhere(['shop_id' => $shop_id])->andWhere(['>=', 'start_date', date('Y-m-d 00:00:00', strtotime($day))])->andWhere(['<=', 'start_date', date('Y-m-d 23:59:59', strtotime($day))])->all();
foreach ($monday as $employee){
return Yii::$app->formatter->asTime($employee->start_date, 'php:H:i').'-'.Yii::$app->formatter->asTime($employee->end_date, 'php:H:i').' '.$employee->user->nameEmployee.'<br>';
}
}
<table class="table">
<tr>
<th>Магазины</th>
<th>Пн <?= date("d.m", strtotime("last Monday")) ?></th>
<th>Вт <?= date("d.m", strtotime("last Tuesday")); ?></th>
<th>Ср <?= date("d.m", strtotime("last Wednesday")); ?></th>
<th>Чт <?= date("d.m", strtotime("Thursday")); ?></th>
<th>Пт <?= date("d.m", strtotime("Friday")); ?></th>
<th>Сб <?= date("d.m", strtotime("Saturday")); ?></th>
<th>Вс <?= date("d.m", strtotime("Sunday")); ?></th>
</tr>
<?php foreach ($shops as $shop){
echo '<tr>
<td>'.$shop->name.'</td>';
echo '<td>'.shift($shop->id, 'last Monday').'</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>';
} ?>
</table>