2015-01-08 21 views
0

我试图用CakePHP框架更新记录,但我收到一个错误,告诉我我无法更新。但是我找不到错误来自哪里。Cakephp没有更新模型

这是if语句在控制器出现故障的地方:

控制器/ 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无法更新我的记录?

+0

你也可以上传你的模型,并可以打印数据你试图保存?即在执行save()命令之前显示$ id和$ this-> Invoice – Crembo

回答

0

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

例如

$this->request->data['Invoice']['id'] = $id; 

或在您的edit.ctp添加

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