我有一个行为,可以根据 session 中存储的用户ID隔离用户数据。在CakePHP 1.3中,您可以执行以下操作:
App::import('Component', 'Session');
$session = new SessionComponent();
$session->read('Auth.User.id');
但是在CakePHP 2中,您无法实例化行为中的组件,因为Component __construct需要 Controller 的ComponentCollection作为参数。
是否可以在CakePHP 2中的行为内部访问 session 变量?最好的方法是什么?
最佳答案
如果查看SessionComponent
代码,您将看到它只是CakeSession
类的包装。
因此,您可以执行以下操作:
App::uses('CakeSession', 'Model/Datasource');
$user_id = CakeSession::read('Auth.User.id');