ZF: Zend_Form_SubForm只使用FormElements和ViewHelper在视图中显示元素


ZF: Zend_Form_SubForm display elements in the View on one's own using only FormElements and ViewHelper?

我的任务是创建名称为photoForm[name][1]的输入列表。如果我在视图中打印$this->form,那就好了。所有字段都是好的

但是我不想使用decorator,我想自己编译。(只留下ViewHelper和FormElements在视图中显示)

我在视图中运行以下代码:

foreach($this->mainform->getSubForm('photoForm')->getSubforms() as $form)
{
    foreach($form->getElements() as $element)
    {
        print $element;
    }
}

并获得后续输入:

<input type="text" name="name" id="name" value="" />

但是我想看到下面的代码:

<input type="text" name="photoForm[name][1]" id="photoForm-name-1" value="" />

如何打印正确?

这是我简化的源代码,以便更好地理解:

function addInput($name, $id, $value)
{
    global $photoForm;
    $input = new Zend_Form_Element_Text($name);
    $input->setValue($value);
    $subform = new Zend_Form_SubForm(();
    $subform->addElement($input);
    $photoForm->getSubForm('photoForm')->addSubForm($subform, $id);
}
function submitInput()
{
    $input = new Zend_Form_Element_Submit('submit');
    $input->setLabel('Save');
    return $input;
}
$photoForm = Zend_Form();
$subform = new Zend_Form_SubForm();
$photoForm->addSubForm($subform, 'photoForm');
$photoForm->addElement(submitInput());
addInput('name', 1, 'value');

于是我找到了答案。

礼貌https://stackoverflow.com/users/220922/fimbulvetr