我正在尝试构建一个由Subjects组成的表单,这些表单属于SubjectGroups.在视觉上,主题显示在每个主题组的标题下的页面上.您将能够编辑主题组或单个主题的名称.
如果我给你一个HTML的例子:
<div class="heading">
<input type="text" value="Subject Group 1" />
</div>
<input type="text" value="Subject 1" />
<input type="text" value="Subject 2" />
<input type="text" value="Subject 3" />
<div class="heading">
<input type="text" value="Subject Group 2" />
</div>
<input type="text" value="Subject 4" />
<input type="text" value="Subject 5" />
<input type="text" value="Subject 6" />
...
Run Code Online (Sandbox Code Playgroud)
如何使用Cake的FormHelper构建表单,这将允许我像这样更新多行?
然后,我如何验证和更新SubjectGroup和Subject模型?
如何处理每个模型的许多实例(主题1,主题2等)?
请参阅保存相关模型数据的文档(特别是"公司hasMany帐户"示例中使用的数字语法).您应该能够通过循环数据来实现这一目标:
$i = $j = 0;
foreach ($subjectGroups as $subjectGroup):
echo $this->Form->input('SubjectGroup.' . $i . '.id');
echo $this->Form->input('SubjectGroup.' . $i . '.name');
foreach ($subjectGroup['Subject'] as $subject):
echo $this->Form->input('Subject.' . $j . '.id');
echo $this->Form->input('Subject.' . $j . '.name');
$j++;
endforeach;
$i++;
endforeach;
Run Code Online (Sandbox Code Playgroud)
至于储蓄,你就是这么做的$this->SubjectGroup->saveAll($this->data);
.