如何在cakephp 3中为整数字段(创建、修改)自动添加unix时间戳

如何在cakephp 3中为整数字段(创建、修改)自动添加unix时间戳,cakephp,cakephp-3.0,unix-timestamp,Cakephp,Cakephp 3.0,Unix Timestamp,在cakephp 2中有一个神奇的方法,它可以自动用unix时间戳填充创建的和修改的列。但是在CakePHP3中只有TimestampBehavior创建datetime而不是unixtime整数值int 请提供一个解决方案,通过cakephp 3中的unix时间戳值,神奇地填充类型为int的创建的和修改的列 谢谢 附言。 这是我的数据库表模式 CREATE TABLE `users_verifications_codes` ( `id` int(11) NOT NULL AUTO_INCREM

在cakephp 2中有一个神奇的方法,它可以自动用unix时间戳填充
创建的
修改的
列。但是在CakePHP3中只有
TimestampBehavior
创建
datetime
而不是unixtime整数值
int

请提供一个解决方案,通过cakephp 3中的unix时间戳值,神奇地填充类型为
int
创建的
修改的

谢谢

附言。 这是我的数据库表模式

CREATE TABLE `users_verifications_codes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
...
`created` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
使用

时间戳行为允许表对象在每个模型事件上更新一个或多个时间戳。这主要用于将数据填充到创建和修改的字段中。但是,通过一些额外的配置,您可以更新表发布的任何事件的任何timestamp/datetime列

首先看一下手册总是一个好主意。在Cake3中,还有许多其他事情也以类似的方式发生了变化。我建议您也阅读迁移指南,它让您了解其中的变化,而且变化很多。

使用

时间戳行为允许表对象在每个模型事件上更新一个或多个时间戳。这主要用于将数据填充到创建和修改的字段中。但是,通过一些额外的配置,您可以更新表发布的任何事件的任何timestamp/datetime列


首先看一下手册总是一个好主意。在Cake3中,还有许多其他事情也以类似的方式发生了变化。我建议您也阅读迁移指南,它让您了解了这些变化,而且变化很多。

[CakePHP 3.5.8]创建的
和修改的
列在我从CakePHP 2.x转换的应用程序的数据库中有
BIGINT
类型

最后使用了
Models\ModelnameTable.php中的
beforeSave()
方法

public function beforeSave($event, $entity, $options)
{
    if ($entity -> modified instanceof Time) {
        $entity -> modified = $entity -> modified -> toUnixString();
    }

    if ($entity->created instanceof Time) {
        $entity->created = $entity->created->toUnixString();
    }
}

[CakePHP 3.5.8]创建的
列和修改的
列在我从CakePHP 2.x转换的应用程序的数据库中有
BIGINT
类型

最后使用了
Models\ModelnameTable.php中的
beforeSave()
方法

public function beforeSave($event, $entity, $options)
{
    if ($entity -> modified instanceof Time) {
        $entity -> modified = $entity -> modified -> toUnixString();
    }

    if ($entity->created instanceof Time) {
        $entity->created = $entity->created->toUnixString();
    }
}

谢谢,我今天会更深入地调查时间戳行为谢谢,我今天会更深入地调查时间戳行为