通过搜索cakephp 2.x会话表登录用户

时间:2016-06-28 03:10:50

标签: php session cakephp cakephp-2.0

我想使用会话表来获取所有登录用户的列表。为此,我尝试使用以下代码查询cake_sessions表:

$this->loadModel('CakeSession');
$sessions = $this->CakeSession->find('all', array('fields' => 'data'));
// next I process session data to find logged in users

但运行此代码我收到以下错误:

调用未定义的方法CakeSession :: find()

如果我使用以下代码直接访问该表,它可以正常工作:

$db = ConnectionManager::getDataSource("default");
$sessions = $db->fetchAll("SELECT data from cake_sessions");
// next I process session data to find logged in users

访问会话表是否受限制?我当前的解决方案工作正常,但我很困惑为什么我不能使用CakeSession-> find()。

1 个答案:

答案 0 :(得分:1)

因为CakeSession 不是一个模型类。看到 http://api.cakephp.org/2.8/class-CakeSession.html

您引用的类是数据源,因为“命名空间”也会告诉您:Cake\Model\Datasource。在Cake2会话中,访问是作为数据源实现的。 “模型”不仅是一种文件,也不仅仅是一种文件。

在应用模型文件夹中创建正确的会话模型类。见http://book.cakephp.org/2.0/en/models.html

你可能必须将它命名为不同以避免冲突,因为Cake2不像Cake3那样使用真正的php命名空间。