Как настроить Zend_Form для использования записи массива? - PullRequest
4 голосов
/ 18 декабря 2009

У меня проблемы с настройкой Zend_Form. У меня есть подкласс Zend_Form. Форма содержит некоторую необходимую информацию и дополнительную информацию. Я хочу, чтобы дополнительная информация была доступна через массив. Представленные данные будут выглядеть примерно так:

$formData['required1']
$formData['required2']
$formData['addiotnalData']['aData1']
$formData['addiotnalData']['aData2']

Я прогуглил это и попробовал все предложения, которые я нашел (используя подформы и установив методы Zend_Form::setIsArray($flag) и Zend_Form::setElementsBelongTo($array)), но не понял, как это сделать.

Что я делаю не так? Как задать имена элементов формы, чтобы я мог получить доступ к данным с помощью записи массива?

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Сортировка! Проблема в том, что использовался пользовательский декоратор.

//In
$subForm = new Form_SubForm(); //this can be a Zend_Form or Zend_Form_SubForm     
$subForm->setIsArray(true);
$this->addSubForm($subForm, 'subform');

Элементы будут отображаться с идентификатором subform-elementname и именем subform[elementname].

0 голосов
/ 11 октября 2013

Чтобы расширить ответ, потому что $ form-> setIsArray (TRUE) не работал с моим пользовательским декоратором для элементов. Мой собственный декоратор ViewScript был необходим для рендеринга Zend_Form_Element.

Проблема в том, что он рендерил имя элемента с помощью $ this-> element-> getName (). Мне пришлось использовать $ this-> element-> getFullyQualifiedName () в сценарии декоратора ViewScript.

...