Отображение ошибок Zend Subform в родительской форме Zend - PullRequest
1 голос
/ 29 августа 2011

Мне известно, что ошибки формы можно настроить для отображения в верхней части формы, используя код декоратора, например:

$form->setDecorators(array(
                       array('FormElements'),
                       array('FormErrors'),

Однако в моей (родительской) форме есть подчиненные формы, и мне нужно визуализировать ошибки подчиненных элементов - агрегировать и отображать в верхней части родительской формы. Как это может быть достигнуто, пожалуйста? Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2012

Я немного новичок в Zend, но у меня есть похожая реализация, которая достигает этого.Хотя у меня также есть дополнительный код, который позволяет отображать ошибки в произвольном порядке, а также помещает подчиненные формы в отдельные div.

Важные части, на которые следует обратить внимание, это то, что ошибки отключаются в обеих формахне указав декоратор FormErrors, а затем создав новый декоратор ошибок в родительской форме.

В основной форме я добавил декоратор FormErrors, например:

$form->setDecorators(array(
    new Zend_Form_Decorator_FormErrors(array(
      'ignoreSubForms'=>false,
      'markupElementLabelStart'=> '<p>',
      'markupElementLabelEnd'=> '</p>',
      'markupListStart'=>'<div class="formErrors">',
      'markupListEnd' => '</div>',
      'markupListItemStart'=>'<div>',
      'markupListItemEnd'=>'</div>'
   )),
   'FormElements'
));

Затемв подчиненной форме вы отключаете ошибки формы

$subForm->setDecorators(array(
   'FormElements',
   array(
      array('data' => 'HtmlTag'),
      array('tag' => 'div', 'class' => 'formRow')
   )
));
...