当我尝试访问系统>配置>高级>系统时出现此错误
致命错误:在第 421 行的/home/server/public_html/store/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php 中的非对象上调用成员函数 toOptionArray()
我找到了这个答案:致命错误:调用成员函数 toOptionArray()
但是,需要根据该答案替换的代码与该文件 (Form.php) 中的代码不同:
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);
}
}
}
return $this;
有什么想法吗?谢谢!
如果你看一下 Form.php从第 398 行到 425 行,你几乎有相同的代码。答案中的代码不是修复程序,只是帮助您确定真正问题的一种方法,因此您可以使用该代码:
if(is_object($sourceModel)){
$field->setValues($sourceModel->toOptionArray($fieldType == 'multiselect'));
} else {
Mage::log($e->source_model);
}
然后,您必须查看Magento日志文件以查看发生了什么。您也可以尝试记录debug_print_backtrace();可能您的问题来自写得不好的扩展。
以下步骤应解决该错误:-
-
禁用编译 (
System -> Tools -> Compilation
) -
刷新缓存 (
System -> Cache Management
)