如何在CakePHP中的枚举类型列中保存数据

时间:2012-12-21 06:58:44

标签: mysql enums cakephp-2.0

  

可能重复:
  CakePHP 2.0 - Use MySQL ENUM field with form helper to create Select Input

我的表单中有一个复选框。该复选框在数据库中有一个枚举类型列。如果选中该复选框,我需要在该列中保存1,否则为0。

我正在使用CakePHP的保存功能来保存所有表单值。当我选中该复选框时,列更新为1,但是如果我取消选中然后按下提交按钮,则会使用空值更新。

如何使用CakePHP中的复选框保存枚举类型值?

2 个答案:

答案 0 :(得分:0)

如果您没有定义任何内容,则枚举将Null作为列的默认值。更新表定义并将“0”设置为默认值。它会解决你的问题。

答案 1 :(得分: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;
}