Настройте свою повторно используемую форму имени / возраста / адреса следующим образом (скорее всего, в методе init () расширения, чтобы вы не увидели большую часть этого кода в своих действиях.)
$littleForm = new Zend_Form();
$littleForm->addElement(new Zend_Form_Element_Text('name'));
$littleForm->addElement(new Zend_Form_Element_Text('age'));
$littleForm->addElement(new Zend_Form_Element_Text('address'));
$littleForm->addElement(new Zend_Form_Element_Submit('submit'));
Поскольку вам не нужны никакие другие декораторы для формы NAA, вы устанавливаете FormElements в качестве единственного декоратора и удаляете кнопку отправки из формы NAA
$littleForm->setDecorators(array('FormElements'));
$littleForm->removeElement('submit');
Настройте отображение / основную форму следующим образом и установите порядок формы NAA, когда вы добавляете ее в качестве подформы, чтобы она отображалась над элементами основной формы.
$bigForm = new Zend_Form();
$bigForm->addElement(new Zend_Form_Element_Text('shippingAddress'));
$bigForm->addElement(new Zend_Form_Element_Submit('submit'));
$bigForm->addSubForm($littleForm, 'littleForm', 1);
$this->view->form = $bigForm;
Показать форму в скрипте вида
echo $this->form;
Вот как вы это делаете, используя декораторы. Лично я изменяю и отображаю свои формы с помощью частичного сценария и использую только декораторы для визуализации элементов ввода. Вероятно, вы бы тоже хотели этикетки и прочее ...