Я хочу использовать скрипт вида для визуализации моей Zend-формы, так как она кажется наилучшим способом управления макетом / дизайном формы при использовании классов Zend_Elements.
Из скрипта вида:Я отображаю элемент с $this->element->getElement('elementName')
.
У меня проблемы с именами элементов.На самом деле это подформа внутри подформы внутри формы.
Когда я использовал декораторы FormElements, полное имя элементов было form [subForm] [subForm] [element], которое былохорошо.Когда я перешел к декораторам viewScript, он изменился на subForm [subForm] [element].
Я понял, что мне нужно использовать декоратор PrepareElements, чтобы это исправить, но это заставило имя изменить форму [subForm][form] [subForm] [subForm] [elements] (он удвоил первые два имени в начале).
Есть идеи, как мне справиться с этим?
Спасибо.
ОБНОВЛЕНИЕ: Я попытался отладить PrepareElements, и я действительно не понимаю, что делает.Кажется, что он работает нормально в первой итерации, но затем он снова добавляет префикс формы [subform] при запуске на одной из средних подчиненных форм.
Когда я не использую декоратор PrepareElements, япросто отсутствует префикс «form» в именах (т. е. вместо form [subForm] [element] я получаю только subForm [element]).
Может быть, я могу это как-то исправить?
Я пытался изменить принадлежность, но это заменило только префикс "subForm".
На самом деле кажется, что отсутствует метод метод к элементу subForm.
СноваЭто все из-за декоратора ViewScript.Он отлично работает с декораторами FormElements.
ОБНОВЛЕНИЕ 2: Просто чтобы прояснить, я не возражаю против этого изменения имени, но это заставляет мои поля не заполняться, когда я вызываю form->заполнить.
Редактировать: Я думаю, что я сузил проблему до этого: когда я возвращаю свои значения обратно в setDefaults, они упорядочены следующим образом:
array(
\"formElements1-name\" => value1... \"subFormName\" => array(
\"parentFormName\" => array(
\"subFormName\" => subForm-values-array
)
)
... Основная проблема здесь "parentFormName" => "subFormNAme"..
, что она повторяется?Я уже в основной форме.Я предполагаю, что это вызвано тем, что я установил setElementsBelongTo(formName[subFormName])
, но если бы я не сделал этого, то я бы получил значения своей подчиненной формы полностью отдельно от формы,
, то есть values array = array(\ "formName \" => array (formValues), \ "subFormNAme \" => array (subFormValues)
, хотя я ожидаю, что это будет
array(
formName => array(
subFormNAme => values-array
)
)...
Возможно ли это вообщесделать эту работу?