CakePHP 1.3-create()未设置创建日期时间


CakePHP 1.3 - create() not setting created datetime?

我正在将一个系统从CakePHP 1.1升级到1.3。当在1.1中使用create()(后面跟着save())时,系统会很乐意向数据库中添加一个insert条目,其中创建和修改的日期时间字段设置为创建日期时间。然而,在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

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

创建了DEFAULT NULL

CakePHP只有在created被定义为NULL时才会填充:

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