Zend framework Zend_Validate_Regex,无法设置自定义错误消息
我在为Zend_Validate_正则表达式设置自定义错误消息时遇到了一些麻烦 我知道我在语法方面迷失了方向,因此我的元素声明如有任何帮助,将不胜感激:Zend framework Zend_Validate_Regex,无法设置自定义错误消息,zend-framework,zend-form,zend-form-element,Zend Framework,Zend Form,Zend Form Element,我在为Zend_Validate_正则表达式设置自定义错误消息时遇到了一些麻烦 我知道我在语法方面迷失了方向,因此我的元素声明如有任何帮助,将不胜感激: $this->addElement('text', 'email', array( 'label' => 'E-Mail', 'title' => 'email..', 'required' => true, 'validators' => array(
$this->addElement('text', 'email', array(
'label' => 'E-Mail',
'title' => 'email..',
'required' => true,
'validators' => array(
array('Regex',
true,
array('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i'),
'messages' => array(Zend_Validate_Regex::NOT_MATCH,
'my not match message',
Zend_Validate_Regex::INVALID => 'my invalid message',
Zend_Validate_Regex::ERROROUS => 'my errorous message',
)
)
)
));
我也尝试过:
'messages'=>array(
'regexNotMatch'=>'Your own custom error message'
)
但是我总是会收到默认的错误消息。我非常喜欢这种OO方式来创建表单。自定义消息的工作方式如下:
$form = new Zend_Form();
$regex = new Zend_Validate_Regex('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i');
$regex->setMessages(array(
Zend_Validate_Regex::NOT_MATCH => 'my not match message',
Zend_Validate_Regex::INVALID => 'my invalid message',
Zend_Validate_Regex::ERROROUS => 'my errorous message'
));
$el = new Zend_Form_Element_Text('email');
$el->setLabel('E-Mail')
->setRequired(true)
->addValidator($regex);
$form->addElement($el);
注意:为什么要使用Regex验证程序而不是EmailAddress?尝试以下方法:
$this->addElement('text', 'email', array(
'label' => 'E-Mail',
'title' => 'email..',
'required' => true,
'validators' => array(
array('Regex',
true,
array(
'/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i',
'messages' => array(
Zend_Validate_Regex::NOT_MATCH => 'my not match message',
Zend_Validate_Regex::INVALID => 'my invalid message',
Zend_Validate_Regex::ERROROUS => 'my errorous message',
)
)
)
));
它仍然返回默认消息:我们必须比较同一通道中的不同值。因此,他们不是我们不使用EmailAddress的原因,但在其他地方,我们使用regex验证其他内容,并面临同样的问题/