我需要创建Joomla数据库配置的自定义数组,所以我这样做:
$config =& JFactory::getConfig();
$db['default']['hostname'] = $config->getValue('config.host');
但是收到错误:Fatal error: Cannot use object of type JDatabaseMySQLi as array in /Sites/joomla/administrator/components/com_***** on line 217
。
我也尝试过这样:
die(var_dump($config->getValue('config.host')));
//string(9) "localhost"
$temp_var = $config->getValue('config.host');
die(var_dump($temp_var));
//string(9) "localhost"
答案 0 :(得分:0)
在Joomla 3.0中
你可以得到这样的每个值:
$config = JFactory::getConfig();
$db['default']['hostname'] = $config->get('host');
// Show them
var_dump($config);
var_dump($config->get('host'));
var_dump($db);
答案 1 :(得分:0)
问题是$ db部分,而不是$ config。
您试图将$ db对象(可能由JFactory::getDbo()
创建)威胁为数组。
如果这是你想要用于某事的自己的变量,请尝试将其重命名为其他变量,以避免与显然已存在的$ db对象发生冲突。
或者使用如下所述的JDatabase类:http://docs.joomla.org/Accessing_the_database_using_JDatabase
答案 2 :(得分:0)
您的错误消息非常清楚 - 您正在尝试使用类$db
的{{1}}对象作为数组。如果您按如下方式创建JDatabaseMySQLi
:
$db
你有Joomla的数据库连接器$db = JFactory::getDBO();
// N.B. $db is already setup for the Joomla! database.
(使用MySQLi adpater)!安装本地数据库(即object
中的一个设置)。这不是configuration.php
- 但您的代码行正在尝试将其用作array
array
注意:以上这一行是错误的
如果要使用除$db['default']['hostname'] = $config->getValue('config.host');
(例如远程数据库)中存储的凭据之外的凭据设置与数据库的连接,可以使用以下方法:
configuration.php