[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод ошибок
fantua
Использую структуру MVC, интересует как лучше реализовать вывод ошибок для пользователя. Допустим при регистрации.
В контроллере есть метод валиции данных, как правильно при проверке того или иного параметра
-создавать ошибку
-при наличии ошибок, чтобы не выполнялись следующие методы регистрации пользователя
-как выводить данную ошибку или ошибки
Игорь_Vasinsky
Цитата
Использую структуру 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
kaww
Цитата
В контроллере есть метод валиции данных, как правильно при проверке того или иного параметра
Контроллер не должен заниматься валидацией данных, это дело (внезапно!) валидатора. Тогда метод контроллера, отвечающий за регистрацию:
Цитата
-создавать ошибку
-при наличии ошибок, чтобы не выполнялись следующие методы регистрации пользователя
-как выводить данную ошибку или ошибки

//some code
public function registrationAction()
{
//$configuration - параметры настройки валидатора
$validator = new Validator($configuration);//например так
if ($validator->isValid($this->getRequest()->getPost())) {

$user = $validator->getValidData();
//registration processing
} else {

$this->getView()->set('errors', $validator->getErrorMessages());
}
}

//some code
fantua
kaww, а в валидаторе должен быть метод для валидации каждого контроллера (validRegister(), validLogin())?

И при ошибках не нужно использовать переадресацию?
kaww
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
fantua
И при ошибках не нужно использовать переадресацию Header('Location: reg')?
fantua
kaww, а проверка не занят ли e-mail делается в валидаторе или уже в модели?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.