2011-05-12 57 views
2

嗨,我想創建一個「預訂確認」鏈接,當點擊時從0表中的字段「證實」變爲1更新CakePHP的一個單一的數據庫字段 - 應該是簡單

所以遠我有:

function admin_markAsConfirmed($id = null) { 
    $this - > Booking - > id = $id; 
    if ($this - > Booking - > saveField('confirmed', 1)) { 
     $this - > Session - > setFlash('Booking Confirmed'); 
     $this - > redirect(array('action' = > 'admin_index')); 
    } 
} 

但它不工作。所有這些都是插入一個新行,而不是編輯由$ id指定的行。

我該如何做這項工作?這似乎很簡單,但我一直堅持這幾個小時。

+3

你檢查是否ID實際上正在設置? – JohnP 2011-05-12 08:20:52

回答

1

你應該使用這樣的事情...

$this->Post->id = 1;<br/> 
$this->Post->read();<br/> 
$this->Post->set('title', 'New title for the article');<br/> 
$this->Post->save(); 

這裏是link的蛋糕在線預訂

+0

如果'saveField'不起作用,那麼這也不起作用。 – JJJ 2011-05-12 13:57:17

+0

不起作用:( – 2011-05-13 02:17:59

+1

添加$ this-> Article-> read();後$ this-> Booking-> id = $ id;我不認爲設置id實際上會做任何事情,直到您調用find或一個讀取方法 – 2011-05-13 12:09:59

0

試試這個:

// Update field to desired value 
$data = array('someModel' => array('id' => $this->someModel->id, 'someField' => 'someInfo')); 

// Save the changes 
$this->someModel->save($data, false, array('someField')); 
相關問題