2016-10-04 54 views
0

我所需要的只是一个非常简单的任务,但我仍然无法找到解决方案。我已经尝试了许多使用Auth组件,会话组件的方法。但请注意,解决方案应该适用于CakePHP的3.x版本,而不是旧版本。 我已经在我的AppController文件中实现了Auth组件,现在想知道在Layout的default.ctp文件中用户是否登录。有了这个检查,我想在页面上实现不同的内容。如何在CakePHP3的布局文件中访问用户登录状态?

几个示例代码,我到目前为止已经试过列举如下:

//#1 
if($this->Auth->user()){ 
    //DO THIS 
} 

//#2 
//Setting $user variable in AppController and accessing it in view file. 
if($user){ 
    //DO THIS 
} 

使用会话和直接验证组件几个人都试过了,但我所有的研究后明白的是,新版本不支持会话助手了。

请确认含糊不清,并提出一些解决方案来进行任务。

TIA!

回答

1

在你看来,你需要通过请求对象来访问它,使用下面的代码

$this->request->session()->read('Auth.User');

为会话的辅助是一个在CakePHP 3.X弃用,也验证是一个组件,不能在视图中使用。

所以实际上你可以检查它像

$session_user = $this->request->session()->read('Auth.User'); 
if(!empty($session_user)){ 
     // User logged in 
} 
else 
{ 
    // User is not logged in 
} 
+0

谢谢老兄!有效。 :) –

相关问题