Предположим у нас есть сайт работающий на одном из MVC-фреймворков. На сайте достаточно много сущностей и страниц. Но на страницах всегда показывается боковая колонка с блоком выводящим случайные картинки с сайта.
Вопрос заключается в следующем, согласно парадигме MVC, данные должны вытягиваться из модели в контроллере и передаваться в представление, следует ли в этом случае поступить также?
Или же стоит данные получать именно там где они используются, минуя контроллер?
Один из вариантов реалзации — использовать логику виджетов. Т.е. иметь подключаемую библиотеку, которая реализует MVC уже в себе.
Второй вариант — использовать более сложный рендер, чем предлагает фреймворк. В рендере уже описывать логику вывода сайдбаров и вообще собирать шаблон страницы из отдельных частей.
Кто Вам сказал такую глупость что модели должны отдавать данные _только_ через контроллер? В зенде, например, есть модели которые работают минуя контроллер, и называются они вью-хелперы. Те же вышеуказанные плагины тоже по сути своей являются моделями.
бизнес-логику реализует модель, контроллер лишь формирует данные таким образом, что бы его можно было скормить представлению, разделяет права доступа и т.д.