В ZF1 можно было пометить форму как недействительную, используя код:
$form->fieldname->addError('error message');
Как я могу сделать это в ZF2?
Я старался
$form->get('elementName')->setMessages(array('error message'));
но это не делает форму недействительной.
Меня интересует тот же вопрос, и я не знаю, как это легко сделать с помощью стандартных форм 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, наложив это свойство.
Может быть, это тоже кому-то помогает.
Других решений пока нет …