簡體   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