如何在Event中使用Cakephp 3的Auth组件
How to use Auth component of Cakephp 3 in Event
我正在使用 CakePHP 3.2 和 proffer 插件上传图片。
我想重写proffer插件上传图片的默认路径,并在保存前更改图片名称。
根据 github 提供的文档。我在 /src/Event
中创建了一个活动
现在我想将文件重命名为
$this->Auth->user('id').'-'.$row('id').date('dmyhis').ext
这就是我所做的
$newFilename = $this->Auth->user('id').'-'.$event->subject()->get('id') . '_' . Inflector::slug($event->subject()->get('name')) . date('ymdhis') . $ext;
但这给出了不能在此处使用 Auth
的错误。有什么方法可以在控制器外使用 Auth Component
吗?
您可以通过加载会话访问已登录的用户标识。
use Cake\Network\Session;
$session = new Session();
$userData = $session->read('Auth.User.id');
蛋糕 3.x 及之后,你应该使用这个:
$this->request->session()->read('Auth');
调试时
debug( $this->request->session()->read('Auth') );
[
'id' => (int) 2,
'username' => 'admin',
'nice_name' => 'Tommy Do',
'first_name' => 'Huy',
'last_name' => 'Đỗ',
...//and more info in UserTable
]
并访问每个元素。
$this->request->session()->read('Auth.nice_name');
打印:
Tommy Do
希望对你有所帮助:D
我正在使用 CakePHP 3.2 和 proffer 插件上传图片。
我想重写proffer插件上传图片的默认路径,并在保存前更改图片名称。
根据 github 提供的文档。我在 /src/Event
现在我想将文件重命名为
$this->Auth->user('id').'-'.$row('id').date('dmyhis').ext
这就是我所做的
$newFilename = $this->Auth->user('id').'-'.$event->subject()->get('id') . '_' . Inflector::slug($event->subject()->get('name')) . date('ymdhis') . $ext;
但这给出了不能在此处使用 Auth
的错误。有什么方法可以在控制器外使用 Auth Component
吗?
您可以通过加载会话访问已登录的用户标识。
use Cake\Network\Session;
$session = new Session();
$userData = $session->read('Auth.User.id');
蛋糕 3.x 及之后,你应该使用这个:
$this->request->session()->read('Auth');
调试时
debug( $this->request->session()->read('Auth') );
[
'id' => (int) 2,
'username' => 'admin',
'nice_name' => 'Tommy Do',
'first_name' => 'Huy',
'last_name' => 'Đỗ',
...//and more info in UserTable
]
并访问每个元素。
$this->request->session()->read('Auth.nice_name');
打印:
Tommy Do
希望对你有所帮助:D