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

Session 在cakephp 2中读取行为中的会话变量,session,cakephp,cakephp-2.0,Session,Cakephp,Cakephp 2.0,我有一个行为,可以根据会话中存储的用户id隔离用户数据。在CakePHP 1.3中,您可以执行以下操作: App::import('Component', 'Session'); $session = new SessionComponent(); $session->read('Auth.User.id'); 但是在CakePHP 2中,您不能在行为中实例化这样的组件,因为组件_构造需要控制器的ComponentCollection作为参数 在CakePHP 2中是否可以访问行为中的会

我有一个行为,可以根据会话中存储的用户id隔离用户数据。在CakePHP 1.3中,您可以执行以下操作:

App::import('Component', 'Session');
$session = new SessionComponent();
$session->read('Auth.User.id');
但是在CakePHP 2中,您不能在行为中实例化这样的组件,因为组件_构造需要控制器的ComponentCollection作为参数


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

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

因此,您可以执行以下操作:

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

在CakePHP 2.0中,您也可以通过静态CakeSession::method()调用会话方法,而无需加载任何内容…;-)

接得好。。显然,当我昨晚发布这篇文章时,我并没有想太多。好吧,你们的类应该仍然拥有
App::uses('CakeSession','Model/Datasource')语句,尽管如此!;)