Zend_Form自定义错误消息

4
class Form_Accounts_Add extends Zend_Form {


    public function init($options=array()) {

        $first_name     = new Zend_Form_Element_Text('first_name');
        $last_name      = new Zend_Form_Element_Text('last_name');
        $email          = new Zend_Form_Element_Text('email');
        $password       = new Zend_Form_Element_Text('encrypted_password'); 

        $first_name->setRequired(false);
        $last_name->setRequired(false);
        $email->setRequired(true)->addFilter('StringToLower')->addValidator('NotEmpty', true)->addValidator('EmailAddress');
        $password->setRequired(true);

        $this->addElements(array($first_name, $last_name, $email, $password));
    }

}

如果电子邮件无效,我会收到错误信息:$form->getErrors('email')返回的是emailAddressInvalidHostname。
我想自定义该错误信息,这可行吗?

好的,没问题。我一直在点赞但没有勾选,已经浏览了我的 8 页并正确授予了奖励。谢谢。 - azz0r
1个回答

13

这只是一个例子。这可能会对你有所帮助.....

$email = new Zend_Form_Element_Text('emailid');

$email->setLabel("Email-Adress :* ")
      ->setOptions(array('size' => 20))
      ->setRequired(true)
      ->addFilter('StripTags')
      ->addFilter('StringTrim')
      ->addValidator('EmailAddress')
      ->getValidator('EmailAddress')->setMessage("Please enter a valid e-mail address.");

1
这对于我的 'alnum' 验证器没有起作用。在我的 Zend_Form 类中,我正在进行 $this->addElement(...),我将验证器部分从 'validators' => array('alnum') 更改为 'validators' => array(array('alnum', true, array('messages' => array('notAlnum' => '自定义消息'))))。 - jackocnr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接