2015-01-08 166 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');