@l4m3r

Нужна ли прослойка между controller и view?

У меня не так много опыта. Я часто замечаю, что после того, как получил данные в контроллере, и прежде, чем их вывести во вью, нужно для этого вью подготовить определенные преобразования. Ну, например:

  • Получили flat-список моделей и базы, а выводим древовидную структуру. Где писать код преобращующий из плоскости во вложенный массив для удобства вывода?
  • Я выгружаю данные в excel. Писать 500-строчный action с PhpExcel'евской портянкой, как-то некомильфо. Куда вот его запихнуть?
  • Нужно подгодовить данные вспомогательных для выпадающих списков, которые напрямую не сильно относятся к текущему действию (например, список городов и стран в редактировании пользователя). Где мне их загружать? В экшене?
  • Часто вью содержит закономерности. Например, сверху фильтры (select, input, ...), снизу фильтруемая таблица. Приэтом, это должно кастомизироваться. Есть ли какое-то архитектурное решение, чтобы не копировать при каждой сущности. Например, задаю конфиг фильров и таблицы, а далее уже идёт вывод в blade. Где этот код и конфиг должен быть?
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
1.а. Получать из БД сразу древовидную структуру, предварительно её там сохранив. Гуглить Nested set, ajacency list и т.д.
1.б. Использовать презентеры.
1.в. Использовать сервисный слой.

2.а. Использовать презентеры.
2.б. Использовать сервисный слой.

3. Использовать view composer/view creator.

4. В конфиге. И, возможно, смотреть п. 3.
Ответ написан
Ваш ответ на вопрос

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

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