我遇到一个问题,指定在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'数据源。但是我找不到任何关于如何做的信息。
非常感谢任何帮助!
答案 0 :(得分:2)
会话处理程序只知道模型和表类,并且它不应该知道更多。
所以你可以做的是配置该表类使用非默认连接。如果您还没有具体的ProjectB
课程,请创建一个,并覆盖SessionsTable
,例如
Table::defaultConnectionName()
另请参阅 Cookbook > Database Access & ORM > Table Objects > Configuring Connections