Zend Framework 2: Как пометить форму как недействительную?

В ZF1 можно было пометить форму как недействительную, используя код:

$form->fieldname->addError('error message');

Как я могу сделать это в ZF2?
Я старался

$form->get('elementName')->setMessages(array('error message'));

но это не делает форму недействительной.

2

Решение

Меня интересует тот же вопрос, и я не знаю, как это легко сделать с помощью стандартных форм Zend 2.

Я понятия не имею, почему нужно было скрывать ручную манипуляцию с состоянием формы и нарушать очевидную функциональность addError.

Но, может быть, уместно использовать прокси-способ, например так:

  1. Создайте собственную форму базового класса (лучше напишите позже):

    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;
    }
    
    }
    
  2. Создайте ваши настоящие формы из этого пользовательского класса форм по умолчанию из класса Zend Form:

    class SomeYourForm extends BasicForm
    ...
    

Таким образом, вы сможете установить для этой формы допустимое состояние на true или false, наложив это свойство.

Может быть, это тоже кому-то помогает.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]