【问题标题】:CakePHP 1.3 - create() not setting created datetime?CakePHP 1.3 - create() 没有设置创建日期时间?
【发布时间】:2013-08-23 15:04:19
【问题描述】:

我正在将系统从 CakePHP 1.1 升级到 1.3。在 1.1 中使用 create()(后跟 save())时,系统会很高兴地向数据库添加一个 insert 条目,并将 created 和 modified 日期时间字段设置为创建时间。但是,在 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

我应该注意,这只是其中一张表,所有其他型号都会发生同样的事情。谢谢!

【问题讨论】:

  • 请为没有创建数据的表显示数据库创建表语句
  • @AD7six:添加到上面的问题中。

标签: php cakephp datetime cakephp-1.3


【解决方案1】:

创建默认空值

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2011-08-24
    相关资源
    最近更新 更多