Magento Admin>系统>配置>高级>系统 - 致命错误

时间:2012-06-05 05:00:10

标签: magento configuration php

当我尝试访问System>时出现此错误配置>高级>系统

致命错误:在/home/server/public_html/store/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php上的非对象上调用成员函数toOptionArray() 421

我找到了这个答案:Fatal error: Call to a member function 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;

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

如果从第398行到第425行查看Form.php,则代码几乎相同。您的答案中的代码不是修复,只是一种帮助您确定真正问题的方法,因此您可以使用该代码:

if(is_object($sourceModel)){
    $field->setValues($sourceModel->toOptionArray($fieldType == 'multiselect'));
} else {
    Mage::log($e->source_model);
}

然后你必须查看Magento日志文件以查看发生了什么。 您也可以尝试记录debug_print_backtrace(); 可能你的问题来自写得不好的扩展。

答案 1 :(得分:0)

以下步骤应解决错误: -

  1. 禁用编译System -> Tools -> Compilation
  2. 刷新缓存System -> Cache Management