Zend Framework 2: Как пометить форму как недействительную?
В ZF1 можно было пометить форму как недействительную, используя код:
$form->fieldname->addError('error message');
Как я могу сделать это в ZF2? Я старался
$form->get('elementName')->setMessages(array('error message'));
но это не делает форму недействительной.
1 ответ
Мне интересно тот же вопрос, и я не знаю, как это сделать легко с помощью стандартных форм Zend 2.
Я понятия не имею, почему нужно было скрывать ручное манипулирование состоянием формы и нарушать очевидную функциональность addError.
Но, может быть, уместно использовать прокси-способ, например так:
Создайте собственную форму базового класса (лучше напишите позже):
class BasicForm extends Form { protected _isValid = null; public function isValid() { return isset($this->_isValid) ? $this->_isValid : parent::isValid(); } public function setValid($value) { $this->_isValid = isset($value) ? (bool)$value : null; return $this; } }
Создайте ваши настоящие формы из этого пользовательского класса форм по умолчанию из класса Zend Form:
class SomeYourForm extends BasicForm ...
Таким образом, вы сможете установить для этой формы допустимое состояние на true или false, наложив это свойство.
Может быть, это тоже кому-то помогает.