【问题标题】:Adding multiple validators in Zend_Form在 Zend_Form 中添加多个验证器
【发布时间】:2012-03-08 18:21:03
【问题描述】:

我想为登录脚本创建一个表单域,允许输入用户名或电子邮件地址。

我有一个验证器

$loginName = new Zend_Form_Element_Text('loginName');
$loginName->addValidators(array('Alnum', 'EmailAddress');

这不起作用(因为它似乎验证了 Alnum 和 EmailAddress)。我想验证 Alnum 或 EmailAddress。

关于如何做到这一点的任何建议?

【问题讨论】:

    标签: zend-framework validation


    【解决方案1】:

    你有两个选择。您可以使用 Regex 验证器,也可以编写自定义验证器,它本身使用 Alnum 和电子邮件验证器。

    http://framework.zend.com/manual/en/zend.validate.writing_validators.html

    第二个选项看起来像这样:

        class My_Validate_Field extends Zend_Validate_Abstract
        {
         
            protected $_messageTemplates = array(
                'alnumemail' => "'%value%' is not an alphanumeric string or email address"
            );
         
            public function isValid($value)
            {
                  $alnum = new \Zend_Validate_Alnum();
                  $email = new \Zend_Validate_EmailAddress();
    
            $valid = $alnum->isValid( $value ) || $email->isValid( $value);
    
            if( !$valid ) {
                $this->_error();
            }
    
                return $valid;
            }
        }
    

    【讨论】:

      最近更新 更多