私の仕事は、 photoForm[name][1]のような名前を持つ入力のリストを作成することです。ビューに$this->formを印刷すれば、問題ありません。どの分野も得意です。
しかし、私はデコレータを使いたくないので、自分でコンパイルしたいと思っています。(ビューに表示するために 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');