Intereting Posts
Почему мое изображение iframe исчезает? Как проверить роль пользователя в symfony2 для URL-адресов, которые не подпадают под определенные шаблоны security.yml? Заполнить ввод файла после формы submit / on form submit error Как преобразовать изображение в кодировку base64? Соотношения уровня сервиса и модели с поддержкой домена получить текущий контроллер Где найти php_imagick.dll для php 5.5.12 для Windows wampserver 2.5? php – регулярное выражение – PCRE не поддерживает \ L, \ l, \ N, \ P, Как интегрировать PHP / Python Interpreter в Notepad ++ Моя доктрина действительно медленная. Простой запрос и одна секунда, чтобы получить результат Безопасная функция очистки XSS (регулярно обновляется) В окне «Моя поп» отображается горизонтальный скроллер, как его удалить? Codeigniter – Создание собственного помощника как я могу создать личный поддомен программным образом с помощью php Как загрузить файлы в подпапку Amazon S3 с помощью POST?

Уровень проверки в шаблоне MVC

Где лучшее место для проверки данных, которые будут использоваться моделью. Например, подумайте о регистрационной форме. У нас есть некоторые данные, которые поступают из регистрационной формы. Итак, где лучшее место для проверки этих данных. Мы должны проверять все данные с помощью операторов if или специального класса валидатора, а это означает много кодирования, поэтому я хочу узнать, где место для этого.

В контроллере? или модель?

И то и другое? Потому что некоторые данные должны быть проверены другими моделями?

Если вы не уверены в точном ответе, попробуйте найти возможные преимущества и недостатки обоих способов.

Источник данных валидации должен быть в модели, тогда как фактическая проверка должна, вероятно, выполняться как на уровне представления (возможно, с подсказками javascript или UI), так и на уровне модели. Пуристы предполагают, что мнение не должно быть связано, но я не согласен.

Конечно, не в контроллере, его единственной задачей должно быть просто управление запросом / ответом и familarize моделью и просмотр друг с другом. Сделайте это в бизнес-модели. Не с кучей if-утверждений, а просто с использованием цикла for-loop и абстрактной проверки.

Валидация в представлении должна быть сделана только для улучшения работы пользователя. В webapps представление – это в основном HTML-страница. В этой проверке возможно только с Javascript, который полностью работает на стороне клиента. Клиент имеет полный контроль над ним, например, взломать / отключить его. Используйте JS-проверку только для улучшения пользовательского опыта (т.е. более быстрого ответа, без вспышки содержимого). Все еще выполняйте (такую ​​же) проверку на стороне сервера для лучшей надежности.

Помещение валидации в ваши модели не позволяет вам повторить код проверки в кучке контроллеров.

на мой взгляд, валидация должна выполняться как по модели, так и по виду.