Где лучшее место для проверки данных, которые будут использоваться моделью. Например, подумайте о регистрационной форме. У нас есть некоторые данные, которые поступают из регистрационной формы. Итак, где лучшее место для проверки этих данных. Мы должны проверять все данные с помощью операторов if или специального класса валидатора, а это означает много кодирования, поэтому я хочу узнать, где место для этого.
В контроллере? или модель?
И то и другое? Потому что некоторые данные должны быть проверены другими моделями?
Если вы не уверены в точном ответе, попробуйте найти возможные преимущества и недостатки обоих способов.
Источник данных валидации должен быть в модели, тогда как фактическая проверка должна, вероятно, выполняться как на уровне представления (возможно, с подсказками javascript или UI), так и на уровне модели. Пуристы предполагают, что мнение не должно быть связано, но я не согласен.
Конечно, не в контроллере, его единственной задачей должно быть просто управление запросом / ответом и familarize моделью и просмотр друг с другом. Сделайте это в бизнес-модели. Не с кучей if-утверждений, а просто с использованием цикла for-loop и абстрактной проверки.
Валидация в представлении должна быть сделана только для улучшения работы пользователя. В webapps представление – это в основном HTML-страница. В этой проверке возможно только с Javascript, который полностью работает на стороне клиента. Клиент имеет полный контроль над ним, например, взломать / отключить его. Используйте JS-проверку только для улучшения пользовательского опыта (т.е. более быстрого ответа, без вспышки содержимого). Все еще выполняйте (такую же) проверку на стороне сервера для лучшей надежности.
Помещение валидации в ваши модели не позволяет вам повторить код проверки в кучке контроллеров.
на мой взгляд, валидация должна выполняться как по модели, так и по виду.