Лично я проверяю в контроллере как модель, но я склонен придерживаться проверки в контроллере только , чтобы убедиться, что определенная функция модели должна быть загружена. Итак, в основном: проверить, чтобы контролировать.
Пример: кто-то пытается обновить определенную информацию, публикуя форму до ?p=foo&bar=1&baz=2
. В контроллере я бы проверил, являются ли значения 1 и 2 действительными числами, и это правильный запрос. Может быть, даже проверить, есть ли у пользователя доступ к этой конкретной информации.
Если это так, я вызываю функцию обновления в Модели, которая затем проверяет все опубликованные данные формы. Если нет, то обычно это означает, что пользователь не должен быть там в первую очередь и даже не достигает Модели.