Идет ли какое то нарушение идеологии фреймворка когда у контроллера несколько моделей?

И как правильно выходить из ситуаций когда нужно в вьюху с одним контроллером вывести модель от другого?Просто use app\somethingModel - это единственный выход? Или возможно как в ангуляре стоит как нибудь ее независимой директивой сделать (не знаю есть ли вообще такой подход).
  • Вопрос задан
  • 596 просмотров
Решения вопроса 3
Denormalization
@Denormalization
А какая разница какие модели использует контроллер?
Он как раз для этого и нужен (в общем случае) - чтобы рулить что передавать во view.
View вообще все равно что в нее передают, она должна просто показать это.

Я так понимаю, что вопрос появился из-за REST контроллера (index, update, store, ...)? Конечно не стоит делать обновление\вывод модели User в контроллере PostsController, но например вывести посты + связанных юзеров никто не запрещает.
Ответ написан
galk_in
@galk_in
Backend Developer
Мы в своей работе используем следующий элементы:
Модель
Репозиторий
Сервис
Контролер

В данном случае я бы использовал Сервис, который работает с репозиториями или моделями.

PS Вьюшек мы не используем ибо фронтенд сам их строит.
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
Для начала давайте уточним: речь идет не о идеологии фреймворка, а об одном из шаблоном проектирования - MVC - на котором этот фреймворк построен.

Если чисто академически - да, идет нарушение, потому что для этого парртера должно всегда выполняться правило 1M = 1V = 1C.

Чисто практически - если только один контролер вызывает именно эти две конкретные модели, тогда ничего страшного нет, однако, если именно эти две модели, нужны десятку-другому контроллеров по всему приложению, думаю имеет смысл сделать какую-то обертку именно для этих двух моделей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы