Использование собственного валидатора в Zend Framework - PullRequest
1 голос
/ 21 марта 2012

В 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
    }
}

как мне это сделать?

1 Ответ

2 голосов
/ 21 марта 2012

Вы должны добавить префиксный путь к вашей форме, чтобы ваш класс был распознан.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...