Zend_Form - элементы на основе нескольких массивов - PullRequest
1 голос
/ 05 сентября 2011

Используя Zend_Form, как бы я создал элементы формы следующим образом:

<input type="text" name="element[0][name]" value="" />
<input type="text" name="element[0][text]" value="" />
<input type="text" name="element[1][name]" value="" />
<input type="text" name="element[1][text]" value="" />

1 Ответ

1 голос
/ 05 сентября 2011

Вы должны использовать подформы:

$form = new Zend_Form;

// 'element'
$elements = new Zend_Form_SubForm();
$form->addSubForm($elements, 'element');

И каждый элемент является подчиненной формой подформы 'elements':

$element = new Zend_Form_SubForm;
$element->addElement('Text', 'name');
$element->addElement('Text', 'text');
$elements->addSubForm($element, '0');

$element = new Zend_Form_SubForm;
$element->addElement('Text', 'name');
$element->addElement('Text', 'text');
$elements->addSubForm($element, '1');

В контроллере вы можете перебирать элементыкак это:

foreach($form->elements as $element) {
    var_dump($element->getValue('name'));
}
...