У меня есть поле пароля, которое необходимо заполнить в форме:
$pwd = $this->CreateElement('password', 'pwd')
->setLabel('Change Password')
->setRequired(true)
->addValidator('StringLength', false, array(6, 16))
->addValidator('regex', false, array('pattern' => $allowed_pattern))
->addErrorMessages(array(
'regexNotMatch' => "Only alpha-numeric characters and some punctuation are allowed.",
))
->addFilter('StringTrim');
Но в случае РЕДАКТИРОВАНИЯ формы я не хочу требовать это поле.Там я использую:
$form->getElement('pwd')->setRequired(false);
в моем контроллере перед передачей формы в представление.Когда я проверяю свойства этого элемента формы, у меня устанавливается _allowEmpty, равный 1, и _required, равный 0. Однако когда форма отправляется (с пустым полем), она не проходит проверку в этом поле и возвращает сообщение об ошибке для валидатора RexEx выше.
Есть идеи, почему поле не проходит валидацию при этих обстоятельствах?