CakePHP3中的会话变量

时间:2017-08-23 15:45:55

标签: php session cakephp cakephp-3.0

当用户访问我的网站/应用时,我需要存储一些重要信息(分支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中使用吗?

1 个答案:

答案 0 :(得分:1)

Sessions is available您可以访问请求对象。

换句话说,将分支设置在您想要的位置(或者您可以轻松使用的位置)。 例如,我认为你做这样的事情会更好:。

App.php 初始化您的"分支"像这样的价值

Configure::write('branch',$id);

AppControllerbeforeFilter函数内检查会话是否存在,否则,请使用这样的配置值

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中读取和编写会话......

希望它有所帮助。