Использую структуру MVC, интересует как лучше реализовать вывод ошибок для пользователя. Допустим при регистрации.
В контроллере есть метод валиции данных, как правильно при проверке того или иного параметра
-создавать ошибку
-при наличии ошибок, чтобы не выполнялись следующие методы регистрации пользователя
-как выводить данную ошибку или ошибки
Игорь_Vasinsky
9.10.2013 - 07:09
Цитата |
Использую структуру MVC |
да хоть вертолёт.
Цитата |
при наличии ошибок, чтобы не выполнялись следующие методы регистрации пользователя |
причём тут методы? на уровне прав доступа при построении навигации делай.
Цитата |
как выводить данную ошибку или ошибки |
echo()
print()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата |
В контроллере есть метод валиции данных, как правильно при проверке того или иного параметра |
Контроллер не должен заниматься валидацией данных, это дело (внезапно!) валидатора. Тогда метод контроллера, отвечающий за регистрацию:
Цитата |
-создавать ошибку -при наличии ошибок, чтобы не выполнялись следующие методы регистрации пользователя -как выводить данную ошибку или ошибки |
public function registrationAction()
{
$validator = new Validator($configuration);
if ($validator->isValid($this->getRequest()->getPost())) {
$user = $validator->getValidData();
} else {
$this->getView()->set('errors', $validator->getErrorMessages());
}
}
kaww, а в валидаторе должен быть метод для валидации каждого контроллера (validRegister(), validLogin())?
И при ошибках не нужно использовать переадресацию?
fantua, валидация не контроллеров! валидаци данных. Умеснее будет оперировать таким понятием как форма. Т.е. можно сказать, что валидация формы.:
$form = new Form($config);
$form->setValidator(new Validator($validatorConfig));
if ($form->isValid()) {
}
$validator->setData($form->getData());
if ($validator->isValid()) {
},
посмотрите как это сделано в популярных фреймворках, например,
http://framework.zend.com/manual/2.0/en/mo....validator.html
И при ошибках не нужно использовать переадресацию Header('Location: reg')?
kaww, а проверка не занят ли e-mail делается в валидаторе или уже в модели?