Yii 如何使用CForm创建子表单数组?

Yii 如何使用CForm创建子表单数组?,yii,Yii,我有一个模型数组,它们都是一个类的实例。我需要创建一个表单,其中包含与数组中的模型对应的子表单 必须使用CForm,因为我对它做了一个很好的小扩展,它可以在CJuiTabs中呈现子表单。在目前使用的代码中,POST参数名称是错误的,因为它们的前缀是数组中模型类的名称 下面您可以看到生成的HTML代码片段。看到那些YPageInfo[…]命名的输入了吗?这就是问题所在-服务器只接收到一组带有此前缀的输入 <div style="visibility:hidden"><input

我有一个模型数组,它们都是一个类的实例。我需要创建一个表单,其中包含与数组中的模型对应的子表单

必须使用CForm,因为我对它做了一个很好的小扩展,它可以在CJuiTabs中呈现子表单。在目前使用的代码中,POST参数名称是错误的,因为它们的前缀是数组中模型类的名称

下面您可以看到生成的HTML代码片段。看到那些YPageInfo[…]命名的输入了吗?这就是问题所在-服务器只接收到一组带有此前缀的输入

<div style="visibility:hidden"><input type="hidden" value="1" name="yform_20bd4d2c" id="yform_20bd4d2c" /></div>
<div class="row field_name">
<label for="YPageRevision_name">Name</label>
<input name="YPageRevision[name]" id="YPageRevision_name" type="text" maxlength="45" />

</div>
<div class="row field_parent_id">
<label for="YPageRevision_parent_id">Parent Id</label>
<input id="YPageRevision_parent_id_hidden" name="YPageRevision[parent_id]" type="hidden" /><input id="YPageRevision_parent_id" type="text" value="" name="autocomplete-field" />

</div>
<div id="yw1">
<ul>
<li><a href="#enSubFormTab" title="enSubFormTab">en</a></li>
<li><a href="#ruSubFormTab" title="ruSubFormTab">ru</a></li>
</ul>
<div id="enSubFormTab"><div class="row field_title">
<label for="YPageInfo_title" class="required">Title <span class="required">*</span></label>
<input name="YPageInfo[title]" id="YPageInfo_title" type="text" maxlength="256" />

</div>
<div class="row field_content">
<label for="YPageInfo_content" class="required">Content <span class="required">*</span></label>
<textarea name="YPageInfo[content]" id="YPageInfo_content"></textarea>

</div>


</div>
<div id="ruSubFormTab"><div class="row field_title">
<label for="YPageInfo_title" class="required">Title <span class="required">*</span></label>
<input name="YPageInfo[title]" id="YPageInfo_title" type="text" maxlength="256" />

</div>
<div class="row field_content">
<label for="YPageInfo_content" class="required">Content <span class="required">*</span></label>
<textarea name="YPageInfo[content]" id="YPageInfo_content"></textarea>

</div>


</div>
</div>

<div class="row buttons"><input name="submit" type="submit" value="Create" />
</div>

名称
父Id
头衔* 内容* 头衔* 内容*
我找到了一种做我需要的事情的方法

在子窗体的
元素
属性中,声明了一些输入。声明存在的每个标准输入元素都有一个
CFormInputElement
的实例,因此它具有
属性
属性。在这里,您可以设置任何HTML属性,这些属性将在生成的输入标记中呈现。我将自定义的
name
属性放在这里,并在一个循环中对其进行更改,在该循环中,我为主CForm创建子表单配置项

也许有更好的办法