我想根据环境或应用域切换我的默认数据源。
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost'
],
'local' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost'
],
'stage' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost'
]
],
CakePHP3有一些逻辑来处理这个kaind的东西吗?我在te文档中找不到任何有用的东西。
谢谢, 马利。
答案 0 :(得分:1)
当每个数据库上的所有表都相同时
您可以使用ConnectionManager :: alias():
来自控制器:
使用Cake \ Datasource \ ConnectionManager;
if($somecase == "local") {
ConnectionManager::alias('local', 'default');
else if($somecase == "stage") {
ConnectionManager::alias('stage', 'default');
}
else {
//cake will use default
}
更多参考:http://api.cakephp.org/3.0/class-Cake.Datasource.ConnectionManager.html#_alias