当用户访问我的网站/应用时,我需要存储一些重要信息(分支ID)。 每个控制器都应该提供此信息。我这样做是:
AppController.php
Configure::write('branch',$id);
FooController.php
$branchId = Configure::read('branch');
我不确定这是不是正确的方法。这是一个会话变量还是只是一个配置?这个变量可以被其他用户覆盖吗?
我在Cookbook中读到的是,我可以使用:
Configure::write('Session', [
'defaults' => 'php'
]);
然后在任何控制器中读取变量:
$this->request->session()->read('branch');
但我在哪里可以设置'分支'?这甚至可以在AppController中使用吗?
答案 0 :(得分:1)
Sessions is available您可以访问请求对象。
换句话说,将分支设置在您想要的位置(或者您可以轻松使用的位置)。 例如,我认为你做这样的事情会更好:。
在App.php
初始化您的"分支"像这样的价值
Configure::write('branch',$id);
在AppController
内beforeFilter
函数内检查会话是否存在,否则,请使用这样的配置值
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中读取和编写会话......
希望它有所帮助。