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

Les*_*tu2 2 magento

您好我正在使用magento 1.7.0.2,如果我在配置时尝试安装扩展程序(个人栏),则会出现以下错误:

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

第463行:$ optionArray = $ sourceModel-> toOptionArray($ fieldType =='multiselect');

你能帮助我吗?

                    $sourceModel = Mage::getSingleton($factoryName);
                if ($sourceModel instanceof Varien_Object) {
                    $sourceModel->setPath($path);
                }
                if ($method) {
                    if ($fieldType == 'multiselect') {
                        $optionArray = $sourceModel->$method();
                    } else {
                        $optionArray = array();
                        foreach ($sourceModel->$method() as $value => $label) {
                            $optionArray[] = array('label' => $label, 'value' => $value);
                        }
                    }
                } else {
                    $optionArray = $sourceModel->toOptionArray($fieldType == 'multiselect');
                }
                $field->setValues($optionArray);
            }
Run Code Online (Sandbox Code Playgroud)

Kan*_*tel 5

当源模型现在为某些属性定义时,它可能.请检查eav_attribute Table source_model字段.某些条目可能有误或遗失.


小智 5

转到app \ code \ core \ Mage \ Adminhtml \ Block \ System \ Config \ Form.php

在第463行找到以下内容

$optionArray = $sourceModel->toOptionArray($fieldType == ‘multiselect’);
Run Code Online (Sandbox Code Playgroud)

并替换为:

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