繁体   English   中英

CakePHP3中的会话变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM