ZF:Zend_Form_SubForm仅使用FormElements和ViewHelper在View中显示元素?

时间:2011-10-14 17:24:44

标签: php zend-framework zend-form zend-form-element zend-form-sub-form

我的任务是创建名称类似 photoForm [name] [1] 的输入列表。 如果我在视图中打印 $ this->表单 - 这没关系。所有领域都很好。

但我不想使用装饰器,我想自己编译。 (只需保留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');

1 个答案:

答案 0 :(得分:0)