Все привет. Кто сталкивался с компонентом PhalconValidation
? Я, прочитав документацию, не могу понять, как производить валидацию, набросал вот такой вот подход:
public function initialize()
{
$this->add('name', new PresenceOf(array(
'message' => 'Вы не заполнили Имя и Фамилию'
)));
$this->add('name', new RegexValidator(array(
'pattern' => '/^[а-яА-ЯёЁa-zA-Z-]+$/ui',
'message' => 'Имя и Фамилия могут содержать только буквы и тире'
)));
$this->add('name', new StringLength(array(
'max' => 50,
'min' => 5,
'messageMaximum' => 'Имя и Фамилия не может содержать больше 50 символов',
'messageMinimum' => 'Имя и Фамилия не может содержать меньше 5 символов'
)));
$this->add('email', new PresenceOf(array(
'message' => 'Вы не заполнили Email адрес'
)));
$this->add('email', new Email(array(
'message' => 'Не корректный Email адрес'
)));
$this->add('password', new PresenceOf(array(
'message' => 'Вы не заполнили Пароль'
)));
$this->add('password', new StringLength(array(
'min' => 8,
'minimumMessage' => 'Пароль не может быть короче 8 символов'
)));
$this->add('confirm', new PresenceOf(array(
'message' => 'Вы не заполнили Подтверждение пароля'
)));
$this->add('password', new Confirmation(array(
'message' => 'Пароли не совпадают',
'with' => 'confirm'
)));
}
Это неправильный подход, потому что если формы пустые, ошибки всплывают все, а не те, что проверяют форму на пустоту. Как исправить такое положение?
И да, если установить 'cancelOnFail' => true
, то валидация не пройдёт дальше той валидации, которая имеет этот параметр первая в очереди.
UPD 06.11.14:
Приведу пример валидации.
Есть 4 поля, к примеру (имя/емэйл/пароль/и подтверждение пароля).
Первым делом валидация проверяет заполнены поля или нет, потом поэтапно каждое поле, то есть изначально он проверяет все поля на пустоту, а потом все поэтапно, и поля не связаны между собой, за исключением пароля, и его подтверждения. Как то так.