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

时间:2011-12-16 02:42:03

标签: session cakephp cakephp-2.0

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

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

但是在CakePHP 2中,你无法在行为中实例化这样的组件,因为Component __construct需要Controller的ComponentCollection作为参数。

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

2 个答案:

答案 0 :(得分:23)

如果查看SessionComponent代码,您会发现它只是CakeSession类的包装器。

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

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

答案 1 :(得分:3)

在CakePHP 2.0中,您也可以通过静态CakeSession :: method()调用Session-methods,而无需加载任何 ...; - )