Использование ViewScript Decorator для вложенных подчиненных форм (Zend Form)

Я хочу использовать скрипт вида для визуализации моей Zend-формы, так как это лучший способ управления макетом / дизайном формы при использовании классов Zend_Elements.

Из скрипта вида я отображаю элемент с$this->element->getElement('elementName') .

У меня проблемы с названиями элементов. На самом деле это подформа внутри подформы внутри формы.

Когда я использовал декораторы FormElements, полное имя элементов было form [subForm] [subForm] [element], что было хорошо. Когда я перешел к декораторам viewScript, он изменился на subForm [subForm] [element].

Я понял, что мне нужно использовать декоратор PrepareElements, чтобы исправить это, но это заставило имя изменить форму [subForm] [form] [subForm] [subForm] [elements] (это удвоило первые два имени в начале).

Есть идеи, как мне справиться с этим?

Благодарю.

ОБНОВИТЬ: Я попытался отладить PrepareElements, и я действительно не понимаю, что делает. Кажется, что он работает нормально в первой итерации, но затем он снова добавляет префикс form [subform] при запуске на одной из средних подчиненных форм.

Когда я не использую декоратор PrepareElements, я просто пропускаю префикс «form» в именах (то есть вместо form [subForm] [element] я получаю только subForm [element]).

Может быть, я могу это как-то исправить?

Я пытался изменить принадлежность, но это заменило только префикс «subForm».

На самом деле кажется, что в subForm отсутствует метод ownTo.

Опять же, это все из-за декоратора ViewScript. Он отлично работает с декораторами FormElements.

ОБНОВЛЕНИЕ 2: Просто чтобы прояснить, я не возражал бы против этого изменения имени, но это заставляет мои поля не заполняться, когда я вызываю форму-> заполнить.

Редактировать: Я думаю, что я сузил проблему до этого: когда я возвращаю свои значения в setDefaults, они упорядочиваются следующим образом:

array(
\"formElements1-name\" => value1... \"subFormName\" => array(
\"parentFormName\" => array(
\"subFormName\" => subForm-values-array
)
)

... Основной проблемой здесь является"parentFormName" => "subFormNAme".. что это повторяется? Я уже в основной форме. Я предполагаю, что это вызвано тем, что я установилsetElementsBelongTo(formName[subFormName]) , но если бы я не сделал этого, то я бы получил свои значения подчиненной формы полностью отдельно от формы,

т.е. массив значений = массив (\ "formName \" => массив (formValues), \ "subFormNAme \" => массив (subFormValues)

пока я ожидаю, что это будет

array(
formName => array(
subFormNAme => values-array
)
)...

Можно ли вообще сделать эту работу?

Ответы на вопрос(4)

Ваш ответ на вопрос