vanicon
Новичок
Всем привет.
Недавно познакомился с mvc парадигмой, посмотрел разные фреймворки...
И вроде бы все понятно, но все таки есть несколько разногласий по поводу валидации данных,
в модели или в контролллере..
Я считаю что модель должна валидировать данные, но только те которые относятся к ней...
То есть давайте рассмотрим на примере модели пользователя,
у этой модели есть свойства (логин, мыло, пароль, и тд), так вот эти вот свойства и должна уметь валидировать эта модель.
Но как быть если появилась необходимость сделать проверку капчи на странице регистрации,
то где эту проверку осуществлять?
Смотрел как в других фреймворках создаются, специальные сущности типа форма регистрации, и туда это правило уже можно было запихнуть, но на странице регистрации нужно выводить все сообщения об ошибках, а как я уже вышел писал получается у нас 2 валидатора, 1 модель, другой сама сущность формы...
Сам я вот так думаю сделать:
Код действия контроллера.
Как вы думаете, целесообразно ли так поступать?
И как вы делаете валидацию в подобных случаях?
Недавно познакомился с mvc парадигмой, посмотрел разные фреймворки...
И вроде бы все понятно, но все таки есть несколько разногласий по поводу валидации данных,
в модели или в контролллере..
Я считаю что модель должна валидировать данные, но только те которые относятся к ней...
То есть давайте рассмотрим на примере модели пользователя,
у этой модели есть свойства (логин, мыло, пароль, и тд), так вот эти вот свойства и должна уметь валидировать эта модель.
Но как быть если появилась необходимость сделать проверку капчи на странице регистрации,
то где эту проверку осуществлять?
Смотрел как в других фреймворках создаются, специальные сущности типа форма регистрации, и туда это правило уже можно было запихнуть, но на странице регистрации нужно выводить все сообщения об ошибках, а как я уже вышел писал получается у нас 2 валидатора, 1 модель, другой сама сущность формы...
Сам я вот так думаю сделать:
Код действия контроллера.
PHP:
$user = new User;
$user->login = Request::getPost('login');
$user->password = Request::getPost('password');
$user->email = Request::getPost('email');
$user->NameFamily = Request::getPost('NameFamily');
$user->validate('save');
$errors = $user->getErrors();
$captcha = Request::getPost('captcha');
if (empty($errors['captcha'])) {
$errors['captcha'] = 'Введите слово с картинки';
}
elseif (!Validate::captcha($captcha)) {
$errors['captcha'] = 'Введите правильно слово с картинки';
}
if (count($errors) > 0) {
echo 'register is true';
}
else {
var_dump($errors);
}
И как вы делаете валидацию в подобных случаях?