如何在cakephp 3中为整数字段(创建、修改)自动添加unix时间戳
在cakephp 2中有一个神奇的方法,它可以自动用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
创建的和修改的列。但是在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();
}
}
谢谢,我今天会更深入地调查时间戳行为谢谢,我今天会更深入地调查时间戳行为