[英]Session variable in CakePHP3
用户访问我的网站/应用程序时,我需要存储一些重要信息(分支ID)。 此信息应在每个控制器中可用。 我的工作是这样的:
AppController.php
Configure::write('branch',$id);
FooController.php
$branchId = Configure::read('branch');
我不确定这是否正确。 这是会话变量还是只是配置? 该变量可以被其他用户覆盖吗?
我在菜谱中看到的是,我可以使用:
Configure::write('Session', [
'defaults' => 'php'
]);
然后在任何控制器中读取变量:
$this->request->session()->read('branch');
但是我可以在哪里设置“分支”? 在AppController中甚至有可能吗?
换句话说,将分支设置在所需的位置(或对您而言容易的位置)。 例如,我认为最好做这样的事情:
在您的App.php
初始化 “ Branch”值,如下所示
Configure::write('branch',$id);
在您的AppController
beforeFilter
函数内部,检查会话是否存在,否则,请使用类似config的值
if(!$this->request->session()->read('branch')){
$this->request->session()->write('branch', Configure::read('branch'));
}
在您的fooController
只需使用$this->request->session()->read('branch');
和$this->request->session()->write('branch', 'value');
但是您也可以在View或Cell中读取和写入会话...
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.