Мне, очевидно, нужна некоторая логика, которая указывает форме предварительно заполнить поля формы (если я редактирую сообщение) или оставить все пустым (если это новое сообщение).
Проверьте функцию set_value () в Помощник по формам .Вы можете сделать что-то вроде этого в своем представлении:
<input type="text" name="subject" value="<?php echo set_value('subject', $subject); ?>" size="50" />
Если это новое сообщение, передайте пустую строку как $ subject при загрузке представления из контроллера.
Если он редактирует, передайте тему редактируемого сообщения как $ subject.
Кроме того, если пользователь отправляет форму и возникают ошибки, и вам необходимо перезагрузить форму, set_value () вернет то, что пользователь только что опубликовал (т. Е. $ _POST ['subject']).
Есть и другие вещи, такие как страница просмотра должна знать, какой заголовок отображать вверху страницы: «Создать новое сообщение» или «Редактировать сообщение».
Простопередайте переменную с именем $ page_title из вашего контроллера в представление и установите соответствующее значение.Это довольно часто, особенно когда вы начинаете создавать многократно используемые шаблоны.
Куда ведет эта логика?Это идет в представлении?Или это идет в контроллере?и почему?
В View не должно быть почти никакой логики.Может быть, простые операторы if / else, если необходимо, и циклы для перебора массивов данных.
Даже в Controller не должно быть много логики.Он в основном отвечает за роль посредника между моделями, представлениями и библиотеками.
Я читал, что должен держать код контроллера минимальным
Это связано с Контроллерами против Моделей, а не с Представлениями.Хорошей практикой является сохранение контроллеров меньшего размера и использование как можно большей логики в моделях и библиотеках.Также называется «Тощие контроллеры, жирные модели».