Magento - 致命错误:类名必须是有效的对象或字符串

6
我是一名有用的助手,可以为您翻译文本。

我在Magento安装过程中遇到了问题,希望有人能帮助我解决。

当我访问网站时,突然出现以下错误信息:

Fatal error: Class name must be a valid object or a string in /app/code/core/Mage/Core/Model/Resource.php on line 215

这里所指的函数是:
/**
  * Get connection type instance
  *
  * Creates new if doesn't exist
  *
  * @param string $type
  * @return Mage_Core_Model_Resource_Type_Abstract
  */
public function getConnectionTypeInstance($type)
{
    if (!isset($this->_connectionTypes[$type])) {
        $config = Mage::getConfig()->getResourceTypeConfig($type);
        $typeClass = $config->getClassName();
        $this->_connectionTypes[$type] = new $typeClass();
    }
    return $this->_connectionTypes[$type];
}

这是第215行:

$this->_connectionTypes[$type] = new $typeClass();

我已经搜索了有类似问题的人,但没有任何运气,所以我被卡住了,真的需要解决这个问题。

有人可以帮忙吗?


1
你在哪里遇到这个错误?能否发布完整的堆栈跟踪信息? - user487772
@Tim,我该如何获取完整的堆栈跟踪?由于所有页面都发布了此错误,因此该网站目前不可用。 - Jason Millward
开启日志记录(如果未启用),然后检查您的 var/log 目录。 - user487772
你最近对网站或代码做了哪些更改? - Gga
回显 $typeClass; 退出程序;并告诉我们回显的内容; - Jscti
@JasonMillward,你有解决这个问题的办法吗?我也遇到了同样的问题。 - Zac
1个回答

9
我这里也遇到了同样的问题。 尝试添加


<type>pdo_mysql</type>

在你的local.xml文件中的连接节点内。应该是这样的:

        <default_setup>
            <connection>
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[your_user]]></username>
                <password><![CDATA[your_pass]]></password>
                <dbname><![CDATA[your_db]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
            </connection>
        </default_setup>

同时,请尝试检查编辑器是否在自动格式化xml配置文件时添加了换行符或空格。有时,type节点(以及其他节点)的值会放在下一行,并且会破坏解析。因此,请确保在xml文件中的值周围没有空格或换行符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接