如何在CakePHP 3.x中启动php session()并访问$ _SESSION?

时间:2016-06-24 12:24:30

标签: 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->loadComponent('RequestHandler');
        $this->loadComponent('Paginator');
        Configure::write('Session', ['defaults' => 'php']);
   }
}

但是如果在我的控制器中执行,这似乎没有设置$ _SESSION数组。

我认为通过设置Auth可以解决方法,从而能够访问$ _SESSION,但是当我通过向上面的init添加$this->Auth->allow();打开控制器时,会话变量不再存在。

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

1 个答案:

答案 0 :(得分:3)

CakePHP将会话绑定到请求,例如将值设置为Controller中的键:

$this->request->session()->write('defaults', 'php')

然后,例如在您的模板中按键读取会话:

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