在Zend_Form中,我想验证数据库中可能存在的重复记录。因为我正在使用doctrine 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
}
}
我该怎么做?
答案 0 :(得分:2)
您必须为表单添加前缀路径,以便识别您的课程。
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