2012-12-04 47 views
3

無法使用cakephp更新記錄。cakephp發佈SQL更新語句中缺失的數據字段

控制器代碼:

public function viewBenefit($id) { 
    if ($this->request->is('post')) { 
     $this->set('post', $this->request->data); 
     $this->Benefit->id = $id; 
     if ($this->Benefit->save($this->Benefit->data)) { 
      $myVars['Sucsess'] = TRUE; 
      $this->Session->setFlash('Updates Saved'); 
     } else { 
      $myVars['NewID'] = 0; 
      $myVars['Sucsess'] = False; 
      $this->Session->setFlash('There was an error.'); 
     } 
    } 

    $this->Benefit->recursive = 2; 
    $this->Benefit->id = $id; 
    $this->set('benefit', $this->Benefit->read()); 
} 

相關查看代碼:

<?php echo $this->Form->create('Benefit',array('action'=>'edit','url' => '#')); ?> 
<?php echo $this->Form->input('id',array('type'=>'hidden')) . "\n"; ?> 
<?php echo $this->Form->input('short_description',array('type'=>'textarea')) . "\n"; ?> 
<?php echo $this->Form->end(); ?> 

注:本表(通過調試($後);)通過JS

POST數據sumbitted

array(
    'Benefit' => array(
     'id' => '1952e98e-f589-47d4-b458-11a1bd58ba3b', 
     'short_description' => '<p>This is great sample insurance 321321</p>' 
    ) 
) 

SQL UPDAT Ëstatment:

UPDATE `c16memberdev`.`benefits` SET `modified` = '2012-12-04 10:45:16' WHERE `c16memberdev`.`benefits`.`id` = '1952e98e-f589-47d4-b458-11a1bd58ba3b' 

正如你可以看到現場「SHORT_DESCRIPTION」不被添加到SQL語句,因此數據未添加到數據庫中。謝謝你的幫助。

+0

哪裏是$這個 - >惠益分享>數據越來越設定? –

回答

2

嘗試改變

$this->Benefit->save($this->Benefit->data) 

$this->Benefit->save($this->request->data) 
+0

就是這樣,謝謝先生。 – mbryant