在CakePHP 3中创建一个单独的数据库配置文件
我使用的是CakePHP3.4 默认数据库设置存在于在CakePHP 3中创建一个单独的数据库配置文件,cakephp,cakephp-3.4,Cakephp,Cakephp 3.4,我使用的是CakePHP3.4 默认数据库设置存在于config/app.php 我想分离或覆盖app.php之外的数据库配置,比如在config/my_db.php中,并将其加载到bootstrap.php文件中 此设置现在将覆盖app.php文件中存在的默认数据库设置 有没有办法做到这一点 编辑2 config/my.db.php文件 <?php return [ 'my_db' => [ 'Datasources' => [ '
config/app.php
我想分离或覆盖app.php之外的数据库配置,比如在config/my_db.php
中,并将其加载到bootstrap.php
文件中
此设置现在将覆盖app.php
文件中存在的默认数据库设置
有没有办法做到这一点
编辑2
config/my.db.php文件
<?php
return [
'my_db' => [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'testdb',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
]
];
复制您的
app.php
,将其命名为app\u override.php
,然后更改数据库设置
然后像这样调整bootstrap.php
try {
Configure::config('default', new PhpConfig());
Configure::load('app', 'default', false);
} catch (\Exception $e) {
exit($e->getMessage() . "\n");
}
Configure::load('app_override', 'default');
'my_db' => [
'setting_1' => 'value_1',
'setting_2' => 'value_2',
'setting_3' => 'value_3',
],
];
Configure::load('app','default',false);
bootstrap.php文件中的更改只是…检查一下这个..什么是my_db???什么是database=>testdb???…检查一下这个my_db
是在bootstrap文件中加载的名称。'database'=>'testdb'
是数据库的名称不工作。它仍然使用app.php中的数据库设置de>文件请参见中的编辑2question@AnujTBE…我只是尝试Expalin…发生了什么…首先..Bootstrap.php文件引导..config/my_app.php文件…因此在my_app.php中,无需返回此my_db'=>[…]只需先删除它..然后尝试..嘿,它成功了。谢谢。但是我不能将Configure::load('my_app','default');
在上一个bootstrap.php
文件中。因为这样做会产生错误,因为如果config为null,则键必须是一个数组。
当我像下面这样添加Configure::load('app','default',false);
块时,它工作正常
'my_db' => [
'setting_1' => 'value_1',
'setting_2' => 'value_2',
'setting_3' => 'value_3',
],
];
Configure::load('my_app', 'default','false');
<?php
return [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'my_db',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
];