我的CakePHP应用程序家庭控制器中有以下代码:
public function index ()
{
if($this->referer(array('controller' => 'users', 'action' => 'logout')))
{
$this->layout = 'splash';
$this->set('title_for_layout', 'Goodbye');
$this->render('loggedout');
}
else
{
if (!$this->Auth->user())
{
$this->layout = 'splash';
$this->set('title_for_layout', 'Welcome to CreatHive');
$this->render('splash');
}
else
{
$this->layout = 'home';
$this->set('title_for_layout', 'CreatHive');
$this->render('index');
}
}
}
基本上它表示如果用户来自注销操作,则显示已注销视图,但如果没有,则检查他们是否已登录并显示启动页面或主页。
然而,它始终显示已注销的视图,无论是否登录,甚至来自注销操作(即使刷新会话/ cookie等也不起作用)
任何想法是什么问题,因为代码看起来很好:/
由于
答案 0 :(得分:4)
变化:
if($this->referer(array('controller' => 'users', 'action' => 'logout')))
要:
if($this->referer() == Router::url(array('controller' => 'users', 'action' => 'logout')))