2

当我单击 Magento 系统->配置->销售选项卡下的运输方法选项卡时,我遇到以下错误:

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

最令人震惊的是,这是一个全新的 Magento 安装。谁能告诉我如何消除此错误?

4

6 回答 6

3

添加到 config.xml

<global>
    <models>
        <stockindicator>
            <class>Namespace_ModuleName_Model</class>
        </stockindicator>
    </models>
</global>
于 2013-08-27T08:41:44.163 回答
1

按照本教程解决问题 => http://kb.magenting.com/content/20/49/en/magento-error-call-to-a-member-function-tooptionarray-on-a-non-object。 html

转到 Magento Connect Manager,单击检查升级。在 Actions 中,升级具有新版本的模块,然后重新安装这些模块:

  • Interface_Adminhtml_Default
  • Mage_All_Latest
  • Mage_Core_Adminhtml
  • Mage_Core_Modules

选中“成功安装或升级后清除所有会话”,然后单击“提交更改”。

于 2013-06-02T02:57:22.757 回答
0

我遇到了这个问题,现有的答案都没有帮助。经过反复试验,我发现我的问题是由于在 Windows 和 Linux 上运行之间存在区分大小写的问题。

我的widget.xml文件包含这一行:

<source_model>widget/modeoptions</source_model>

我的模型类被声明为:

class My_Widget_Model_ModeOptions

当部署在 Mirosoft Azure 中运行的 Magento 实例时,这按预期工作。当我将完全相同的代码部署到在 Linux 上运行的 Magento 实例时,我收到了错误消息。

Call to a member function toOptionArray() on a non-object in ../includes/src/Mage_Widget_Block_Adminhtml_Widget_Options.php

更新widget.xml以匹配班级案例后,一切都在 Windows 和 Linux 服务器上按预期工作。

更新/固定线路:

<source_model>widget/ModeOptions</source_model>

希望这可以帮助其他一些努力解决这个错误的人。

于 2016-07-21T14:51:07.277 回答
0

根据 webshopapps 支持,您需要做的就是通过 system->tools->compilation 进行编译。我个人编译,刷新缓存,注销并再次登录。有效。

我之前尝试过更新模块方法,并且在它破坏了 magento 1.9.0.1 后不得不从备份中恢复

于 2016-11-05T09:01:45.193 回答
0

这应该可以解决错误:-

  1. 禁用编译( System -> Tools -> Compilation)
  2. 刷新缓存( System -> Cache Management)
于 2016-06-09T11:53:40.790 回答
-1

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);
}
于 2015-03-11T22:20:34.097 回答