如何在Event中使用Cakephp 3的Auth组件

时间:2016-08-20 17:34:13

标签: cakephp cakephp-3.2

我正在使用CakePHP 3.2和proffer插件进行图片上传。

我想重写proffer插件的默认路径来上传图片并在保存之前更改图片名称。

根据github提供的文档。我在if(view.getText().toString().equals("Students"){ listView.setAdapter(adapter); }

中创建了一个活动

现在我想重命名该文件,如

/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

2 个答案:

答案 0 :(得分:1)

您可以通过加载会话来访问登录的用户ID。

use Cake\Network\Session;
$session  = new Session();
$userData = $session->read('Auth.User.id');

将此作为参考:Reading & Writing Session Data

答案 1 :(得分:0)

使用cake 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