好的,我已经阅读过各种帖子,例如CakePHP 3.x - AuthComponent::user() in View但是那里的解决方案没有告诉你哪里放置代码,以便它可以在应用程序的任何地方使用。< / p>
在CakePHP 2.x中,在登录用户的导航栏中显示这样的用户名非常简单。这样做的方法是使用Auth组件,然后在AppController中设置一些可以使用用户详细信息(名字,姓氏等)数组设置全局可访问变量。
在CakePHP 3.x中,我无法看到如何实现这一目标。
$this->Auth->user('id');
等内容似乎只能在控制器中运行。
我知道你可以将它从Controller传递给View。但是如果你想在全局模板中使用它(例如default.ctp)呢?你是如何在CakePHP 3.x中做到这一点的? Cake的网站上的文档并没有真正告诉你,因为它只以$this->Auth->user('id');
为例。
答案 0 :(得分:0)
通过会话访问
$this->request->session()->read('User.name');
<强> http://book.cakephp.org/3.0/en/development/sessions.html#accessing-the-session-object 强>
答案 1 :(得分:0)
请注意,组件用于控制器,助手用于模板。在构建Auth帮助器时没有。
由于所有登录的Auth用户数据都存储在会话中,并且有会话助手和会话组件,我们可以在模板中使用前者。
$user = $this->request->session()->read('Auth.User');
这将以此格式返回登录用户的所有详细信息:
Array(
[id] => 1
[username] => abc
[email] => abc@xyz.com
.......
)