我在设置Zend_Validate_Regex的自定义错误消息时遇到了一些麻烦。
我知道我在语法中迷失了所以任何帮助都会被我的元素声明所赞赏:
$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'
)
但总是收到默认的错误消息。
答案 0 :(得分:0)
我真的很喜欢这种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?
答案 1 :(得分:0)
试试这个:
$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',
)
)
)
));