Cakephp 2 - 检查用户是否登录视图

时间:2012-02-19 20:19:40

标签: cakephp view authentication

根据用户是否记录,我需要一个显示元素 - 在CakePHP 2.0中

这不起作用

<?php
  if ($this->Auth->loggedIn() 
    { 
    echo $this->element('user');
    }

  else 
    {
    echo $this->element('guest');
    } 
?>

由于

4 个答案:

答案 0 :(得分:14)

遵循MVC模式并将逻辑放在控制器中。

在控制器中:

$this->set( 'loggedIn', $this->Auth->loggedIn() );

在视图中:

if( $loggedIn ) { 
    echo $this->element( 'user' );
}
else {
    echo $this->element( 'guest' );
} 

答案 1 :(得分:4)

使用会话助手(验证所需,如“日志教程”中所示):

if ($this->Session->read('Auth.User')) {
    echo 'logged';
} else {
    echo 'guest';
}

答案 2 :(得分:2)

试试这个:

$element = (AuthComponent::loggedIn()) ? 'user' : 'guest';
echo $this->element($element);

非常类似于您已尝试过的内容,但之后静态调用了loggedIn方法。

答案 3 :(得分:1)

!$this->Session->check('marketplace_showlink'

如果在appcontroller

中编码的上述代码中发生错误

像:
    在非对象上调用成员函数check()

它将由于空会话变量

而生成