2012-12-21 44 views
0

可能重複:
CakePHP 2.0 - Use MySQL ENUM field with form helper to create Select Input如何枚舉類型列中的數據保存在CakePHP中

我在形式的複選框。該複選框在數據庫中具有枚舉類型列。如果複選框被選中,我需要在該列中保存1,否則保存0。

我正在使用CakePHP的保存功能來保存所有表單值。當我檢查該複選框時,列更新爲1,但如果我未選中,然後按提交按鈕,它將更新爲空值。

如何在CakePHP中使用複選框保存枚舉類型值?

+0

'ENUM('0','1')'不是很好的數據庫設計 - 'TINYINT'對布爾值來說更好。 – JJJ

+0

無論如何,CakePHP沒有直接支持ENUM。 – JJJ

回答

0

或者你改變你的列類型TINYINT(0/1)(在MySQL爲例):

ALTER TABLE users CHANGE COLUMN active active tinyint not null default 0; 

或者驗證值是否合格(或檢查),例如:

if($this->request->data['User']['active'] == null) { 
    $this->request->data['User']['active'] = 0; 
} 
0

如果您沒有定義任何內容,Enum會將Null作爲列的默認值。更新表格定義並將默認設置爲「0」。它會解決你的問題。