我在我的 cakePHP 项目中启用了 admin_actions。我有一个普通员工的logout()和admin_logout()和一个用于管理员注销的这两个动作都属于EmployeesController。
两个注销操作中的代码是相同的,除了 flash 消息。
管理员注销():
$this->Session->destroy();
$this->Session->setFlash('You have been logged out of admin dashboard!','flash_success');
$this->redirect('/employees/login');
登出()
$this->Session->destroy();
$this->Session->setFlash('You have been logged out!','flash_success');
$this->redirect('/employees/login');
注销工作正常并破坏了会话。但不是admin_logout()。
为了调试,我在admin_logout()中尝试了这个:
$this->Session->delete('Admin');
$this->Session->setFlash('You have been logged out of admin dashboard!','flash_success');
$this->redirect('/employees/login');
它也在工作。但它仍然不会破坏完整的会话变量。我可以通过对管理员和员工使用正常的logout()来解决这个问题。但出于好奇,这里出了什么问题?
编辑:需要的行为是销毁会话变量,然后使用 Flash 消息进行重定向。但是会发生重定向,并且会显示 Flash 消息,但会话变量没有被破坏!