Cakephp不更新模型

Cakephp不更新模型,php,mysql,cakephp,Php,Mysql,Cakephp,我试图用CakePHP框架更新一个记录,但是我得到一个错误,它告诉我我不能更新。但我找不到错误的来源 这是控制器中if语句失败的地方: Controller/InvoicesController.php if ($this->request->is(array('post', 'put'))) { $this->Invoice->id = $id; if ($this->Invoice->save($this->

我试图用CakePHP框架更新一个记录,但是我得到一个错误,它告诉我我不能更新。但我找不到错误的来源

这是控制器中if语句失败的地方:

Controller/InvoicesController.php

    if ($this->request->is(array('post', 'put'))) {
        $this->Invoice->id = $id;

        if ($this->Invoice->save($this->request->data)) {
            $this->Session->setFlash(__('Invoice updated'), 'flash-success');
        } else {        
            $this->Session->setFlash(__('Please try again'), 'flash-error');
            debug($this->validationErrors, true);
            pr($this->request->data);
        }
    }
调试结果如下:

/app/Controller/InvoicesController.php (line 73)
null
这是我尝试保存时从CakePHP获得的数据:

Array
(
    [Invoice] => Array
        (
            [date] => Array
                (
                    [day] => 05
                    [month] => 01
                    [year] => 2015
                )

            [period] => 14
            [notes] => 
        )

)

为什么CakePHP不能更新我的记录?

对于更新,请求数据必须包含id值

范例

$this->request->data['Invoice']['id'] = $id;
或者在edit.ctp中添加

$this->Form->hidden('id');

您是否可以发布您的模型并打印您试图保存的数据?i、 e.在执行save()命令之前,显示$id和$this->Invoice的内容