我有一个行为,可以根据 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');

10-08 07:15