georgich
@georgich

Как реализовать отображение расписания через TWIG?

Приветствую!
Использую Slim + Eloquent ORM + Twig.
Есть модель Расписания:
class Schedule extends Model
{
    public function employee()
    {
        return $this->belongsTo(Employee::class);
    }
}

Расписание получаю так и передаю в шаблон переменную schedules:
$schedules = Schedule::all();
В переменной schedules данные в таком виде:
{"employee_id":260,"start_date":"2020-04-26","start_time":"16:14:39","end_time":"20:14:44"},
{"employee_id":20,"start_date":"2020-04-28","start_time":"16:14:39","end_time":"20:14:44"},
{"employee_id":260,"start_date":"2020-04-29","start_time":"16:14:39","end_time":"20:14:44"},
{"employee_id":20,"start_date":"2020-04-30","start_time":"16:14:39","end_time":"20:14:44"},
{"employee_id":20,"start_date":"2020-05-02","start_time":"16:14:39","end_time":"20:14:44"},
{"employee_id":260,"start_date":"2020-05-02","start_time":"16:14:39","end_time":"20:14:44"}

Вид расписания на странице должен быть в таком виде:
<table>
  <tr>
    <th>Сотрудник</th>
    <th>26.04</th>
    <th>27.04</th>
    <th>28.04</th>
    <th>29.04</th>
    <th>30.04</th>
    <th>01.05</th>
    <th>02.05</th>
  </tr>
  <tr>
    <td>260</td>
    <td>16:14 - 20:14</td>
    <td></td>
    <td></td>
    <td>16:14 - 20:14</td>
    <td></td>
    <td></td>
    <td>16:14 - 20:14</td>
  </tr>
  <tr>
    <td>20</td>
    <td></td>
    <td></td>
    <td>16:14 - 20:14</td>
    <td></td>
    <td>16:14 - 20:14</td>
    <td></td>
    <td>16:14 - 20:14</td>
  </tr>
</table>

и визуально:
5ea5c545c7ab7566122865.png
Так вот в чём вопрос: как реализовать вывод такой структуры расписания в twig? Проблема заключается в повторяющихся employee_id с разными датами. Воответственно, в колонке Сотрудник не должно быть повторений employee_id, а даты должны заполняться по столбцам.
Надеюсь, что идею вы поняли. Спасибо!
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
glaphire
@glaphire
PHP developer
Вам нужно самостоятельно распарсить и организовать эти данные так, чтобы из контроллера в шаблон передавать уже данные в виде массива, пригодного для генерации как таблицы. Вынесите эту логику в отдельный класс, а в контроллере вызывайте только метод, который сырые данные преобразует в нужный формат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы