我需要在cakephp 3中获取当前和默认的DB名称。
我知道在cakephp 2中它的可能性如何但却无法为cakephp 3找到解决方法。 我已经查看了datasource / connectionManager.php中的cakephp库,但仍然无法使用任何方法。 你能帮我找出当前的连接配置细节吗? 提前谢谢。
答案 0 :(得分:5)
在查看了一些核心的cakephp文件后,我找到了答案。再加上ADmad的回答给了我一个提示。我发现了两种方法。
方法1:使用当前模型对象。
$this->{$modelName}->connection()->config();
将给出配置,和
$this->{$modelName}->connection()->config()['database'];
将提供当前的数据库名称。
方法2:使用数据源对象。
$dataSourceObject = ConnectionManager::get($connectionName); // $connectionName can be 'default'
配置:$dataSourceObject->config();
当前数据库名称:$dataSourceObject->config()['database'];
答案 1 :(得分:0)
如果您使用的是旧版本的CakePHP(我的版本为2.4.6),则还可以使用:
ConnectionManager::$config->default['database']
,您可以通过以下方式加载ConnectionManager:
App::uses('ConnectionManager', 'Model');