как вы группируете подчиненные формы - PullRequest
8 голосов
/ 23 февраля 2011

У меня есть 4 подформы в форме, я хотел бы сгруппировать их 2, а затем применить к ним некоторые декораторы.

Вот то, что я имею до сих пор.с каждой подчиненной формой у меня уже есть несколько групп отображения

$this->setSubForms(array(
    'sub1'  => $sub1,
    'sub2'  => $sub2,
    'sub3'  => $sub3,
    'sub4'  => $sub4
));

я думал, что мог бы сделать что-то вроде

$set1 = $this->setSubFormDecorators(array(
    'sub1'  => $sub1,
    'sub2'  => $sub2
    ));
    $set1->setDecorator(array('something here'));

$set2 = $this->setSubFormDecorators(array(
    'sub3'  => $sub3,
    'sub4'  => $sub4
    ));
    $set2->setDecorator(array('something here'));

, очевидно, это не работает вообще.

Я действительно не смог найти ничего в документации ZF.Я думал, что отправлю это здесь, если кто-то еще столкнулся с этим затруднительным положением.

Ответы [ 2 ]

5 голосов
/ 24 февраля 2011

так что в основном я понял это.

сначала вы создаете "пустые" подчиненные формы

$left = new Zend_Form_SubForm();     

, затем добавляете нужные вам подчиненные формы внутри этой "подчиненной формы"

$left->setSubForms(array(
   'sub1'  => $sub1,
   'sub2'  => $sub2
));

вы делаете то же самоедля другой подчиненной формы, в которую вы хотите добавить декораторы.

$right = new Zend_Form_SubForm();     

$right->setSubForms(array(
   'sub3'  => $sub3,
   'sub4'  => $sub4
));

, затем к своей исходной форме добавьте эти новые подчиненные формы "$ left" и "$ right"

$this->setSubForms(array(
   'left'  => $left,
   'right' => $right
));

, которые вы можетезатем примените декораторы к субформам "$ left" и "$ right", как считаете нужным.

, так как я хочу отбросить наборы полей, которые инкапсулируют элементы внутри моего, выглядит следующим образом, вы делаете то же самое с другимодин.

    $left->setDecorators(array(
        'FormElements',
        array('HtmlTag', array('tag' => 'div')),
        ));

Спасибо

0 голосов
/ 24 февраля 2011

Может быть, addDisplayGroup тоже будет хорошо в этом случае?

...