CakePHP 4.2 在 beforeSave 中获得登录用户

问题描述

我们有一个使用 CakePHP authentication 2 的简单 CakePHP 4 开发,它几乎可以正常工作......

使用 AuthenticationComponent 我们可以在每个控制器中使用 $this->Authentication->getIdentity() 访问登录用户

我们想将登录用户添加到任何添加/编辑请求中...

因此我们编写了有效的行为并将字符串添加到每个添加/编辑...

但是我们如何在 Models Behavior 中访问 AuthenticationComponent 呢?我没找到方法...

感谢每一个提示...

解决方法

获取用户数据到行为的解决方案

    EventManager::instance()->on(
        'Model.beforeSave',['priority' => -1],function (Event $event,EntityInterface $entity,\ArrayObject $options) {
            // retrieve the user id from the auth component
            if(!empty($this->Authentication->getIdentity())){
                $options['user_id'] = $this->Authentication->getIdentity()->get('longname');
            }
        }
    );

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...