Поэтому я пытаюсь расширить руководство по блогу, добавив несколько комментариев:
Post hasMany Comments
Я хочу отобразить форму добавления комментария в том же виде, что и в «пост-просмотре».Дело в том, что я не знаю лучший способ получить такой подход.Я подумал о трех способах:
- Создание функции в Comments Controller для обработки данных.
- Создание функции в Post Controller для обработки данных.
- Сделкас данными в той же функции, которая работает с представлениями записей.
Основная проблема с двумя первыми «решениями» заключается в том, что ошибки проверки не отображаются в форме, если я не сделаю некоторыегрязный взлом сохранения недействительного поля в переменной сеанса и последующего синтаксического анализа переменной в обратном вызове beforeFilter, например:
function beforeFilter () {
if ($this->Session->check('comment_error')) {
$this->Post->Comment->validationErrors = $this->Session->read('comment_error');
$this->Session->delete('comment_error');
}
}
Что я в основном делаю, так это адаптирую недействительные поля к фактическому представлению и разрешаюпоказать правильно.Это работает очень хорошо, но мне кажется, что это ужасно.Каков будет наилучший подход?
Еще один связанный с этим вопрос: должен ли контроллер отражать представление?Я имею в виду на этом примере, я думал только о том, чтобы иметь модель комментариев и иметь дело со всеми данными в контроллере, где находится форма для добавления комментария (даже если он находится в почтовом контроллере).