валидаторы форм symfony, нулевые или действительные

Вопрос о валидаторах форм Symfony. Например, у меня есть поле url. Если пользователь оставит это поле пустым, все в порядке. Но если пользователь предоставляет URL-адрес, он должен указать действительный.

Я пробовал $this->setValidator('url', new sfValidatorUrl(array(), array('invalid' => 'invalid url')));. Но он не допускает пустых значений. (что не является желаемым поведением)

Другими словами. Мне нужен валидатор с нулевым или действительным значением. Я предпочитаю не писать новый валидатор сам. Думаю, я смогу объединить несколько валидаторов для достижения своей цели.


person Peter Long    schedule 24.09.2010    source источник


Ответы (2)


просто установите для параметра "required" значение false (по умолчанию это true).

$this->setValidator('url', 
  new sfValidatorUrl(array('required' => false), array(
    'invalid'  => 'invalid url')));
person greg0ire    schedule 24.09.2010
comment
Обязательный должен быть в первом массиве. Это вариант, а не сообщение. - person Jeremy Kauffman; 24.09.2010

Попробуйте написанный мной валидатор URL. Он не только проверяет, но и очищает.

http://jasonswett.net/how-to-validate-and-sanitize-a-url-in-symfony/

person Jason Swett    schedule 24.09.2010