やってみました:
$foo = new Zend_Form_SubForm();
$foo->setElementsBelongTo('foo')
->setElements(array(
'bar' => 'text',
'baz' => 'text'
));
echo $foo;
次のような HTML になります。
<input type="text" name="foo[bar]" id="foo.bar" value="" />
<input type="text" name="foo[baz]" id="foo.baz" value="" />
経由
マニュアルから:
Zend_Form::setIsArray($flag) : フラグ TRUE を設定すると、フォーム全体を配列として扱う必要があることを示すことができます。デフォルトでは、setElementsBelongTo()が呼び出されていない限り、フォームの名前が配列の名前として使用されます。フォームに名前が指定されていない場合、またはsetElementsBelongTo()が設定されていない場合、このフラグは無視されます (要素が属する配列名がないため)。
isArray()アクセサーを使用して、フォームが配列として扱われているかどうかを判断できます。
Zend_Form::setElementsBelongTo($array) : このメソッドを使用すると、フォームのすべての要素が属する配列の名前を指定できます。getElementsBelongTo()アクセサーを使用して名前を判別できます。