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