蛋糕php和在布局中使用auth

时间:2012-05-08 08:45:39

标签: cakephp cakephp-2.0

我正在使用auth组件,它运行正常。 但是在内容之前我的默认布局我有一些菜单,如果用户登录则不同。所以我想确定用户是否登录 - 通常我使用$ this-> Auth-> user('id ')但$ this-> Auth在布局中不起作用(它仅适用于查看哪个控制器使用Auth组件)。

怎么做?

2 个答案:

答案 0 :(得分:12)

在beforeRender()中调用

$this->set('userData', $this->Auth->user());

并将数据设置为视图并在视图中执行检查。

为了在布局中获取数据,您应该在AppController中调用beforeRender()方法。

将它传递给会话并不是一个好主意恕我直言。这可能不是通常的情况,但至少我更喜欢做事情:如果您正在使用会话,那么您的代码将在未使用会话的系统中失败(无状态身份验证)。总的来说,我不是一个在视图中访问会话的忠实粉丝。会话对我来说更像是一个数据源。

答案 1 :(得分:6)

您可以从会话中读取Auth数据。类似的东西:

$user = $session->read('Auth'); 

不要忘记在AppController中添加Session帮助器。

var $helpers = array('Session');