Ответ на оригинальный вопрос:
- Контроллер получает данные из Модели и передает их в представление
MVC на самом деле очень аккуратный и чистый. Помните, к чему он обращается:
Повторное использование кода (Модели не зависят от контроллеров или представлений. Представления не зависят от контроллеров или моделей. Контроллеры зависят от приложения.)
Разделение логики (Например, для изменения серверной части аутентификации с MySQL на LDAP требуется 0 изменений для представления. Изменение структуры представления требует 0 изменений в модели. Изменение структуры таблицы базы данных требует 0 изменений в контроллере или представлении ).
Теперь, ЕСЛИ вы хотите, чтобы ваши формы автоматически генерировались из структуры таблицы - представления теперь привязаны к таблице (тесно связаны). Изменения в таблице требуют изменения в представлении (хотя и потенциально автоматически). Это может занять меньше кода - но представление больше не зависит от точки зрения повторного использования кода.
Точно так же ваши представления (в MVC) должны быть не более чем шаблонами. Не должно быть никакой логики - только переменные. Вся «логика», или бизнес-правила, находится в контроллере. Модели знают, как получить данные и поддерживать их в норме. Представления знают, как отображать данные. Контроллер знает, когда использовать данные и к каким представлениям применять данные.
MVC - это строгая 3-уровневая архитектура. Двухуровневая архитектура действительна для некоторых приложений. Для быстрых коллажей и "выполнения дерьма" может подойти одно связная архитектура (но вы не получаете очки стиля).
Надеюсь, это поможет.