CakePHP 3.0 时间戳行为

标签 cakephp timestamp cakephp-3.0 behavior

我想在用户登录时更新用户表中的时间戳。我创建了一个名为“lastLogin”的日期时间字段。

从我的用户 Controller 的登录操作中,我调用:

$user = $this->Auth->identify();
if ($user) {
     $this->Auth->setUser($user);
     $this->Users->touch($this->Users->get($user['id']), 'Users.afterLogin');
}

在我的用户表中,我有:

$this->addBehavior('Timestamp', [
    'events' => [
        'Model.beforeSave' => [
            'created' => 'new',
            'modified' => 'always',
        ],
        'Users.afterLogin' => [
            'lastLogin' => 'always'
        ]
    ]
]);

我已经测试过事件被触发并且实体属性正在更新。但是它不会保存到数据库中。

这是有意的吗,即我是否必须显式保存实体,或者我是否遗漏了某些内容?

谢谢!

安德鲁斯

最佳答案

该行为仅更新字段

the documentation来看还不太清楚。 ,但是the code只更新字段值。该行为实际上不会更新数据库,它实际上假设稍后会在同一请求中调用保存。

关于CakePHP 3.0 时间戳行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805900/

相关文章:

php - CakePHP 3 - 如何自动显示多个新实体的表单错误?

mysql - 使用 cakephp 3.X 引用表格本身

mysql - cakephp 从排序且有限的行加入

jquery - 我们如何使用 jquery 在 cakephp 中单击单选按钮时从文本框中添加或删除只读属性?

javascript - 如何在下午 4 点获得今天的时间戳?

MySQL 在工作日+时间戳的小时连接表,每个表的计数

php - cakephp 博客教程 mysql now() 出现错误

cakephp - 使用 CakePHP 开发自定义 CMS,并支持多语言

sql-server - 使用 SSIS 包将日期时间戳列添加到最终目标表

associations - CakePHP 3 查找没有关联记录的记录 (hasMany)