Tou*_*unu 2 php zend-framework2 zend-inputfilter
我在这样的表单条目上有一个验证器:
$this->add(array(
'name' => 'email',
'required' => true,
'filter' => array(
'name' => 'StripTags',
),
'validators' => array(
array(
'name' => 'NotEmpty',
'options' => array(
'messages' => array(
\Zend\Validator\NotEmpty::IS_EMPTY => 'Veuillez renseigner une adresse e-mail.',
),
),
),
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 1,
'max' => 100,
),
),
array(
'name' => 'EmailAddress',
'options' => array(
),
),
),
));
Run Code Online (Sandbox Code Playgroud)
在我的输入上有基本的3个验证器.的NotEmpty,和StringLength,和EmailAdress.
有没有办法在它们之间设置一种优先级?现在,如果我提交一个空表格,我会得到相对于这3个验证器的消息,即.:
无论如何要告诉我的验证员在第一次失败时停止?(或者至少只打印第一条消息).
使用'break_chain_on_failure'验证器规范中的键值为true,即
$this->add(array(
'name' => 'email',
'required' => true,
'filter' => array(
'name' => 'StripTags',
),
'validators' => array(
array(
'name' => 'NotEmpty',
'break_chain_on_failure' => true,
'options' => array(
'messages' => array(
\Zend\Validator\NotEmpty::IS_EMPTY => 'Veuillez renseigner une adresse e-mail.',
),
),
),
array(
'name' => 'StringLength',
'break_chain_on_failure' => true,
'options' => array(
'encoding' => 'UTF-8',
'min' => 1,
'max' => 100,
),
),
array(
'name' => 'EmailAddress',
'options' => array(
),
),
),
));
Run Code Online (Sandbox Code Playgroud)