在cakephp 2中的行为中读取会话变量

Bra*_*och 5 session cakephp cakephp-2.0

我有一种行为,可以根据会话中存储的用户ID实现用户数据的隔离.在CakePHP 1.3中你可以这样做:

App::import('Component', 'Session');
$session = new SessionComponent();
$session->read('Auth.User.id');
Run Code Online (Sandbox Code Playgroud)

但是在CakePHP 2中,您无法在行为中实例化类似组件,因为Component __construct需要Controller的ComponentCollection作为参数.

是否可以访问CakePHP 2中的行为内的会话变量?最好的方法是什么?

nIc*_*IcO 23

如果查看SessionComponent代码,您将看到它只是CakeSession该类的包装器.

所以你可以做到以下几点:

App::uses('CakeSession', 'Model/Datasource');
$user_id = CakeSession::read('Auth.User.id');
Run Code Online (Sandbox Code Playgroud)