2012-11-29 50 views
2

我想更新一列是一個具有NULL值的INT。我將CakePHP 2.3與saveField('field','value')方法一起使用。在INT列中的CakePHP saveField NULL值

這裏是我的代碼:

$this->Customer->id = $customer_id; 
if ($this->Customer->saveField('account_id', 'NULL')) { 
    //Do some stuff 
} 

所以,當我把「NULL」,該行被更新爲0。我試過NULL不帶引號和行不會被更新。

編輯: db中的字段接受NULL值。

你有什麼想法嗎?

感謝

+0

明顯的問題,但無論如何:您的db字段配置,以便它可以爲空? – harpax

+0

是的,它的默認值設置爲NULL。我更新了帖子 – kdelemme

+0

請閱讀以下鏈接:http://bakery.cakephp.org/articles/Jippi/2007/03/25/null-behavior好像這是許多人遇到的問題? – Grambot

回答

2

千萬不要錯過'NULL'作爲一個字符串但null值:

if($this->Customer->saveField('account_id', null)) 
{ 
    //do some stuff 
} 
else 
{ 
    //do you get anything here ? 
    debug($this->Customer->validationErrors); 
} 
+0

我已經嘗試過,就像我在帖子中說的那樣。這不會更新該行。 – kdelemme

+0

其實,/ /執行一些東西。 – kdelemme

+0

它也執行'null'值? – nIcO

0

我已經引起了該驗證防止儲蓄上傳行爲一個類似的問題。檢查你的模型,這可能會有所幫助。我假設即使驗證規則阻止保存,saveField也會返回true。