2013-09-26 2 views
-3

В настоящее время я проверяю URL-адрес с помощью шаблона регулярных выражений и, похоже, работает правильно. Однако, если я оставляю поле URL пустым, он не должен проверять проверку Regex Validation или, возможно, просто вернуть сообщение типа «Нет URL-адреса».Zend Form Validate URL

Вот пример моего текущего кода я работаю с:

array(
    'name'  => 'programurl1', 
    'attributes' => array(
     'type'  => 'text', 
     'error_msg' => 'Enter Valid Program URL 1', 
     'label_msg' => 'Program URL 1 *' 
    ), 
    'validation' => array(
     'required' => true, 
     'filters' => array(
      array(
       'name' => 'StripTags' 
      ), 
      array(
       'name' => 'StringTrim' 
      ) 
     ), 
     'validators' => array(
      array(
       'name' => 'Regex', 
       'options' => array(
        'pattern' => '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/' 
       ) 
      ) 
     ) 
    ) 
) 

Я не уверен, как сделать то, что я ищу, когда поле URL пустым.

+0

Я даже не вижу '?'. Вопросы обычно имеют такие. – pguardiario

+2

Я спрашиваю, могу ли я добавить еще один валидатор в том же массиве? в общем, я хочу, чтобы, если поле пусто, Regex validaor не выполняется. – Shahbaz

+0

Вы задаете вопрос относительно удаления URL-адреса, но вы разместили форму, в которой отображается текстовое поле? не имеет смысла для меня? если вы можете перефразировать вопрос или предоставить релевантный код, который я могу понять. –

ответ

0

Вместо типа text вы можете использовать тип url. Это специально предназначены для ввода значений URL:

$this->add(array(
    'name' => 'programurl', 
    'type' => 'Zend\Form\Element\Url', 
    'options' => array(
     'label' => 'Program URL 1' 
    ), 
    'attributes' => array(
     'required' => 'required' 
    ) 
)); 

Элемент URL это специальный элемент HTML5, см также в docs.

Zend \ Form \ Element \ Url предназначен для сопряжения с Zend \ Form \ View \ Helper \ FormUrl для входов HTML5 с типом url. Этот элемент добавляет фильтры и Zend \ Validator \ Uri validator в его спецификацию фильтра ввода для проверки входных значений URL-адреса HTML5 на сервере.

Afaik, если браузер не может отобразить элемент ввода url, он просто отображает ввод текста в качестве резервной копии.