CakePHP 3.2 - 为会话处理程序指定不同的数据源

时间:2016-02-26 10:13:02

标签: php mysql session cakephp cakephp-3.0

我遇到一个问题,指定在config / app.php中的自定义会话处理程序中使用不同的数据源。以下是相关内容:

配置/ app.php

<?php
return [
    ... ,
    'Datasources' => [
        'default' => [...],
        'test' => [...],
        'session' => [...]
    ],
    'Session' => [
        'defaults' => 'database',
        'ini' => ['session.cookie_domain' => '.example.com'],
        'handler' => [
            'engine' => 'CustomSessionHandler', // file and class name of custom handler
            'model' => 'sessions' // table name
        ]
    ]
];

CustomSessionHandler.php是默认DatabaseSession.php的副本,在查询构建中有一些自定义功能,可以使用我们现有的sessions表架构。

现在,它正在尝试使用'默认'数据源,正如您可能猜到的那样,我正试图让它使用'session'数据源。但是我找不到任何关于如何做的信息。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

会话处理程序只知道模型和表类,并且它不应该知道更多。

所以你可以做的是配置该表类使用非默认连接。如果您还没有具体的ProjectB课程,请创建一个,并覆盖SessionsTable,例如

Table::defaultConnectionName()

另请参阅 Cookbook > Database Access & ORM > Table Objects > Configuring Connections