我正在将系统从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
我应该注意,这只是其中一个表,所有其他模型都会出现同样的情况。谢谢!
答案 0 :(得分:2)
CakePHP只会填充created
if it is defined as NULL:
通过将数据库表中创建和/或修改的字段定义为日期时间字段(默认值为空),CakePHP将识别这些字段并在创建记录时自动填充它们/ p>