Session 如何在CakePHP 3.x中启动php会话()并访问$\会话?

Session 如何在CakePHP 3.x中启动php会话()并访问$\会话?,session,cakephp,cakephp-3.0,Session,Cakephp,Cakephp 3.0,我从CakePHP 3.2文档中看到,要配置会话,我需要使用write(),因此我在控制器中尝试了以下方法: use App\Controller\AppController; use Cake\Core\Configure; class RatingsController extends AppController { public function initialize() { parent::initialize(); $this->

我从CakePHP 3.2文档中看到,要配置会话,我需要使用write(),因此我在控制器中尝试了以下方法:

use App\Controller\AppController;
use Cake\Core\Configure;

class RatingsController extends AppController
{
    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('RequestHandler');
        $this->loadComponent('Paginator');
        Configure::write('Session', ['defaults' => 'php']);
   }
}
但如果在我的控制器中执行,这似乎不会设置$会话数组

我以为通过设置Auth可以解决问题,因此可以访问$\u会话,但当我通过添加
$this->Auth->allow()打开控制器时

我需要在哪里配置Cake来启动会话?

CakePHP将会话绑定到请求,例如,为控制器中的键设置一个值:

$this->request->session()->write('defaults', 'php')
然后,例如,在模板中按键阅读会话:

$this->request->session()->read('defaults')

CakePHP将会话绑定到请求,例如为控制器中的键设置一个值:

$this->request->session()->write('defaults', 'php')
然后,例如,在模板中按键阅读会话:

$this->request->session()->read('defaults')

首先,为什么要访问
$\u会话
?使用CakePHP时,不应直接访问任何超全局变量!我需要一个持久变量。我可以使用$this->request->session()->read(),如果$\u session是由cake创建的。这在文档中有介绍:我的问题更像是为什么你想直接访问
$\u session(而不是为什么你想使用sessions()->read(),因为这就是你的问题听起来的样子。谢谢讨论。回答部分解决了我的问题。首先为什么要访问
$\u会话
?使用CakePHP时,不应直接访问任何超全局变量!我需要一个持久变量。我可以使用$this->request->session()->read(),如果$\u session是由cake创建的。这在文档中有介绍:我的问题更像是为什么你想直接访问$\u session(而不是为什么你想使用sessions()->read(),因为这就是你的问题听起来的样子。谢谢讨论。答案部分解决了我的问题。