Поле Zend Form установило недействительность Validator - PullRequest
1 голос
/ 22 июня 2011

Как установить поле формы в контроллер недействительным?

Пример:

$form->getElement('name')->set.... Validator to FALSE

или что-то подобное ???

Часть кода:

    if(....){
    $form->getSubForm('sub_form_name')->getElement('element_name')->addError('some error message');
    }


    if($form->isValid($this->getRequest()->getPost())) {
//Form is going to be valid and execute this statment
    }

я тоже пытаюсь: markAsError () и hasError ();но не работает: (

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Если вы используете какой-либо из элементов addError ... () или setError ... () для вашего элемента, он должен установить флаг проверки недействительным, или так в документации написано

Zend_Form_Element.addError (строка $ message)

Добавить сообщение об ошибке и пометить элемент как не прошедший проверку

1 голос
/ 29 августа 2011

Небольшая градация.:) Не лучшим образом, но отлично работает.

            $vazio = false;
        if(is_array($nomes)){
      $vazio = true; 
              $form->addError("NomeIsArray");
        }

        if(!$vazio && $form->isValid($post)){

            }
...