【问题标题】:Using Custom Validator in Zend Framework在 Zend 框架中使用自定义验证器
【发布时间】:2012-03-21 07:37:27
【问题描述】:

在 Zend_Form 中,我想验证数据库中可能存在的重复记录。因为我使用的是学说 1.2.4,所以我使用的是自定义验证器。

我定义了一个自定义验证器类Application_Validator_NoRecordExists extends Zend_Validate_Abstract,它位于application/validator 目录中。

类定义取自

Zend_Validate: Db_NoRecordExists with Doctrine

我很困惑的是如何在我的表单中使用验证器,例如我想验证电子邮件地址以检查自定义验证器类是否存在重复记录。

class Application_Form_User extends Zend_Form
{
    public function init()
    {
        $this->setAction('/admin/user/create/')
             ->setMethod('post');

        $email = new Zend_Form_Element_Text('email');
        $email->setLabel('Email address:')
              ->setOptions(array('size' => 50))
              ->setRequired(true)
              ->addValidator('EmailAddress', true)
              ->addFilter('HTMLEntities')
              ->addFilter('StringToLower')
              ->addFilter('StringTrim');

        //add element to form
    }
}

我该怎么做?

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    您必须在表单中添加前缀路径,才能识别您的类。

    Zend_Form::addPrefixPath(string $prefix, string $path, string $type = null)
    

    参考手册中的以下段落应该清楚:http://framework.zend.com/manual/1.11/en/zend.form.elements.html#zend.form.elements.validators

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多