CakePHP保存默认值为0

时间:2012-11-19 09:16:44

标签: mysql cakephp database-design cakephp-1.3

使用CakePHP 1.3如果表单字段中没有写入任何内容,我想为字段保存0值。 最好的方法是在MySQL中完成,但没有成功。我试着设置:

Null = noDefault = 0;或Null = yesDefault = 0;

这两种组合结合了beforeSavebeforeValidate中设置的CakePHP行为:

$model->data[$name][$field] = 0; 要么 unset($model->data[$name][$field]);

还有:

Null = yesDefault = 0;或Null = yesDefault = NULL;

始终是查询:

 INSERT INTO `table` (`zero_field`, `other_fields`) VALUES (NULL, 'other_data')
 or
 INSERT INTO `table` (`zero_field`, `other_fields`) VALUES ('', 'other_data')

如果Null = no收到错误:Column 'zero_field' cannot be null

即使我取消设置字段,我也可以使用里面的字段进行查询。

如果数据库未设置或为空,我应如何在数据库中保存0值?

zero_fieldint(11)

1 个答案:

答案 0 :(得分:0)

  1. 为数据库
  2. 中的字段设置null = no,default = 0
  3. 清除app / tmp / cache / models / *
  4. 中的模型缓存文件
  5. 在保存新记录之前,请务必使用Model-> create(),以便使用默认值填充要保存的新记录。
  6. Save and Win。