CakePHP字段未在编辑页面上更新

时间:2012-03-10 23:17:36

标签: php cakephp

我一直在使用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');
            }
        }
}

1 个答案:

答案 0 :(得分:0)

尝试在saveAll

之前插入此内容

我知道在保存多个相关数据时,您需要验证将使用哪个ID。

unset($this->Parent->Child->validate['parent_id']);

资源:http://book.cakephp.org/1.3/view/1031/Saving-Your-Data