session - 在 cakephp 2 中的行为中读取 session 变量

标签 session cakephp cakephp-2.0

我有一个行为可以根据存储在 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 的包装器类(class)。

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

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

关于session - 在 cakephp 2 中的行为中读取 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529199/

相关文章:

java - 删除 HttpSessionListener 中的 Cookie

php - 重复从数据库获取图像路径与从 session 获取图像路径的优缺点

cakephp - 使变量可用于 CakePHP 2.x 中的所有 Controller

php - Cakephp 无法即时更改数据库

php - CakePHP:为插件创建操作 Hook

javascript - onsubmit cakephp图标更改功能

php - 如何在 cakephp 中获取 Controller 内所有函数的列表

java - session 过期后重定向到登录

c# - NHibernate 延迟加载 - session 关闭后

cakephp - 在 customHelper 中使用 $this->element