CakePHP 1.3 - create()没有设置创建日期时间?

时间:2013-08-23 15:04:20

标签: php cakephp datetime cakephp-1.3

我正在将系统从CakePHP 1.1升级到1.3。当在1.1中使用create()(后跟save())时,系统会愉快地向数据库添加一个条目,其中创建和修改的日期时间字段设置为创建时的字段。但是,在1.3中,这已不再正确发生。此处修改后仍设置为创建和保存时的当前时间,但未设置创建的日期时间。有关为何可能发生这种情况的任何建议吗?谢谢!

创建表格代码(根据评论中的要求):

CREATE TABLE `units` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `id_b36` VARCHAR(4) NULL DEFAULT NULL,
    `subject_id` INT(10) UNSIGNED NOT NULL,
    `gradelevel_id` INT(10) UNSIGNED NOT NULL,
    `user_id` INT(10) UNSIGNED NOT NULL,
    `school_id` INT(10) NULL DEFAULT NULL,
    `district_id` INT(10) NULL DEFAULT NULL,
    `description` VARCHAR(255) NOT NULL,
    `sort` FLOAT(5,1) NOT NULL DEFAULT '0.0',
    `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    INDEX `subject_id` (`subject_id`),
    INDEX `gradelevel_id` (`gradelevel_id`),
    INDEX `sort` (`sort`),
    INDEX `school_id` (`school_id`, `district_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
AUTO_INCREMENT=483

我应该注意,这只是其中一个表,所有其他模型都会出现同样的情况。谢谢!

1 个答案:

答案 0 :(得分:2)

创建了DEFAULT NULL

CakePHP只会填充created if it is defined as NULL

  

通过将数据库表中创建和/或修改的字段定义为日期时间字段(默认值为空),CakePHP将识别这些字段并在创建记录时自动填充它们