cakephp - 检查会话是否已设置

时间:2012-03-22 01:45:53

标签: 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'));
}
?> 

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

验证是component,因此在您的视图中不可用,这些称为helpers.

要在视图中访问Session var

$this->Session->check('Auth.User');