cakephp - 检查会话是否已设置

use*_*854 2 php mysql cakephp

我是cakephp的新手并且遵循本教程. http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

我创建了博客和用户身份验证系统.我正在尝试显示登录链接(如果用户未登录)或显示退出链接(如果用户已登录).

所以,基本上我正在检查会话是否已设置.如果是,则显示注销链接.如果未设置会话,则显示要登录的链接.

这是在我的文件index.ctp中,位于View/Posts/index.ctp中.包含登录和注销功能的文件位于Controller/UsersController.php中.

<?php 
if($this->Auth->User('id')){ 
    echo $this->Html->link('Log Out', array('controller' => 'users','action' => 'logout'));
}

if(!($this->Auth->User('id'))){ 
    echo $this->Html->link('Log In', array('controller' => 'users','action' => 'login'));
}
?> 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:致命错误:在非对象上调用成员函数User().我知道这意味着对象没有定义,但我不知道如何将它引用到另一个控制器.

谢谢你的帮助.

And*_*ong 7

Auth是一个组件,因此在您的视图中不可用,它们被称为帮助程序.

要在视图中访问Session var,您将执行此操作

$this->Session->check('Auth.User');
Run Code Online (Sandbox Code Playgroud)