Я видел другие потоки и отчеты об ошибках, связанные со свойством assignTo элемента Zend_Element, но ничего, что напрямую связано с тем, что я испытываю ..
Вот мой (упрощенный) Zend_Form:
$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
$form->addElement('text', 'sname', array('belongsTo' => 'user'));
Что хорошо, и элементы отображаются так:
<input type="text" name="user[fname]" />
<input type="text" name="user[sname]" />
... именно это я и хочу.
Однако, когда форма отправлена, значения элемента доступны только при вызове
$form->getValue('fname') or $form->getValue('sname')
НЕ, если вы позвоните ...
$form->getValue('user');
То, что я ожидаю увидеть при вызове $ form-> getValues ('user'), - это массив значений.
Массив значений хорошо виден при вызове
$form->getValues();
Если это ожидаемое поведение, то какой смысл помещать их в массив? Поскольку не будет никакого различия между «user [fname]» и «client [fname]» - фактически добавление другого элемента с именем «fname», даже если он принадлежит другому элементу, перезапишет предыдущий.
Я попытался добавить вложенную форму, которая приводит к тому, что я хочу, но таким образом все элементы вложенной формы визуализируются вместе, что я действительно хочу - это разместить элементы 'массива' в случайных местах, как это ...
<input type="text" name="user[fname]" />
<input type="text" name="some-other-field" />
<input type="text" name="some-other-field2" />
<input type="text" name="user[sname]" />
<input type="text" name="another-field-too" />