2012-12-21 42 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”。它会解决你的问题。