我一直在使用cakephp,并且能够创建一些简单的模型和关系。我一直在专门尝试实现hasMany关联。我的问题来自于尝试更新子项。
出于我的例子的目的,我假设我有一个'Parent'和'Child'模型类。我能够创建视图并添加页面没有任何问题。但是,我在编辑页面上没有取得同样的成功。在编辑页面上,我可以显示父字段和子字段。但是,当我去保存表单时,它不是更新子项,而是添加除现有项之外的那些行。我不确定为什么会这样。我在某个地方错过了一个参数吗?
这是我编辑页面的代码
echo $this->Form->create('Parent', array('action' => 'edit'));
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->input('id', array('type' => 'hidden'));
$x = 0;
foreach($this->request->data['Child'] as $child){
print $this->Form->input("Child.$x.name");
$x++;
}
这是我的ParentController中的编辑功能
public function edit($id = null) {
$this->Parent->id = $id;
if ($this->request->is('get')) {
$this->request->data = $this->Parent->read();
} else {
if ($this->Parent->saveAll($this->request->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to update');
}
}
}
答案 0 :(得分:0)
尝试在saveAll
:
我知道在保存多个相关数据时,您需要验证将使用哪个ID。
unset($this->Parent->Child->validate['parent_id']);