Использование 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
)
)...
Можно ли вообще сделать эту работу?