【发布时间】:2021-02-27 23:30:55
【问题描述】:
我对 CakePHP 还很陌生,并且倾向于使用第 4 版。我可以在下面的模板 index.php 文件中读取 PHP 会话值。我认为这是错误的做法,但我还是测试了。
$userrole_id = $this->request->getSession()->read('Auth.userrole_id');
现在我正在尝试在 View Helper 中读取会话值,以便可以在许多不同的地方使用相同的代码。但是上面的代码会抛出一个错误,“Call to a member function getSession() on null”。正如您在上面的一行代码中看到的那样,我已经设置了身份验证并且工作正常。我在 AppView.php 中加载了 helper,加载也很好。
我很确定我缺少基本的东西,但我无法弄清楚。任何建议将不胜感激。
【问题讨论】:
-
documentation 确实说你尝试过的应该“在控制器、视图和单元格中”工作。但是您似乎正在尝试在助手中使用它?同一页说,在帮助程序中,您需要
$this->getView()->getRequest()来获取会话对象,而不仅仅是$this->request。那么,$this->getView()->getRequest()->getSession()->read('Auth.userrole_id');应该可以工作吗?
标签: session cakephp view helper