根据用户是否记录,我需要一个显示元素 - 在CakePHP 2.0中
这不起作用
<?php
if ($this->Auth->loggedIn()
{
echo $this->element('user');
}
else
{
echo $this->element('guest');
}
?>
由于
答案 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()
它将由于空会话变量
而生成