致命错误:在第463行的/Mage/Adminhtml/Block/System/Config/Form.php中的非对象上调用成员函数toOptionArray()

时间:2013-10-24 19:01:22

标签: php magento magento-1.7

运行编译并启用它后,刷新缓存并转到“系统 - >配置”我收到以下错误

致命错误:在第463行的mysite / app / code / core / Mage / Adminhtml / Block / System / Config / Form.php中的非对象上调用成员函数toOptionArray()

如果我关闭启用刷新缓存并返回配置则可以正常工作。

我在Fatal error: Call to a member function toOptionArray() on a non-object in mysite/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php on line 463

中尝试了解决方案

但那不起作用

Go to app\code\core\Mage\Adminhtml\Block\System\Config\Form.php

在第463行找到以下内容

$optionArray = $sourceModel->toOptionArray($fieldType == ‘multiselect’);

并将其替换为:

if(is_object($sourceModel)){
$optionArray = $sourceModel->toOptionArray($fieldType == ‘multiselect’);
} else {
Mage::log($e->source_model);
}

我希望能够启用编译和访问配置。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

替换代码
if ($e->source_model) {
    $sourceModel = Mage::getSingleton((string)$e->source_model);
    if ($sourceModel instanceof Varien_Object) {
        $sourceModel->setPath($path);
    }
    if(is_object($sourceModel)){
        $field->setValues($sourceModel->toOptionArray($fieldType == 'multiselect'));
    } else {
        Mage::log($e->source_model);
    }
}

http://indianicorange.wordpress.com/2010/10/04/fatal-error-call-to-a-member-function-tooptionarray-on-a-non-object/