CakePHP 3.0时间戳行为

CakePHP 3.0时间戳行为,cakephp,timestamp,cakephp-3.0,behavior,Cakephp,Timestamp,Cakephp 3.0,Behavior,我想在用户登录时更新用户表中的时间戳。我创建了一个名为“lastLogin”的日期时间字段 通过我的用户控制器的登录操作,我调用: $user = $this->Auth->identify(); if ($user) { $this->Auth->setUser($user); $this->Users->touch($this->Users->get($user['id']), 'Users.afterLogin'); }

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

通过我的用户控制器的登录操作,我调用:

$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'
        ]
    ]
]);
我已测试该事件是否已触发,实体属性是否正在更新。但是,它不会保存到数据库中

这是有意的,即我必须显式地保存实体,还是我遗漏了什么

谢谢

Andrius

该行为仅更新字段 从中不太清楚,但只更新字段值。该行为实际上不会更新数据库,实际上是假设在同一请求中稍后会有一个保存调用