当我点击Magento system-> configuration-> SALES标签下的Shipping Methods标签时,我遇到以下错误:
致命错误:在D:\ xampp \ htdocs \ magento \ app \ code \ core \ Mage \ Adminhtml \ Block \ System \ Config \ Form.php中的非对象上调用成员函数toOptionArray() 463
最令人震惊的是,这是Magento的全新装置。任何人都可以告诉我如何删除此错误?
答案 0 :(得分:2)
添加到config.xml
<global>
<models>
<stockindicator>
<class>Namespace_ModuleName_Model</class>
</stockindicator>
</models>
</global>
答案 1 :(得分:1)
按照本教程解决问题=&gt; 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中,升级具有新版本的模块,然后重新安装这些模块:
选中“成功安装或升级后清除所有会话”,然后单击“提交更改”。
答案 2 :(得分:0)
这应解决错误: -
System -> Tools -> Compilation
)System -> Cache Management
)答案 3 :(得分: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
以匹配课程&#39;例如,一切都在Windows和Linux服务器上按预期工作。
更新/固定行:
<source_model>widget/ModeOptions</source_model>
希望这可能会帮助其他人解决这个错误。
答案 4 :(得分:0)
根据webshopapps支持,您需要做的就是通过system-&gt; tools-&gt;编译进行编译。我个人编译,刷新缓存,注销并再次登录。有效。
我之前尝试过更新模块方法,并且在打破magento 1.9.0.1之后不得不从备份恢复
答案 5 :(得分:-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);
}