1

我在为 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'
)

但我总是收到默认错误消息。

4

2 回答 2

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);

注意:您为什么使用正则表达式验证器而不是电子邮件地址?

于 2012-04-16T10:57:23.020 回答
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',
            )
        )
    )
));
于 2012-05-06T09:44:04.967 回答