当我单击 Magento 系统->配置->销售选项卡下的运输方法选项卡时,我遇到以下错误:
致命错误:在第 463 行对 D:\xampp\htdocs\magento\app\code\core\Mage\Adminhtml\Block\System\Config\Form.php 中的非对象调用成员函数 toOptionArray()
最令人震惊的是,这是一个全新的 Magento 安装。谁能告诉我如何消除此错误?
当我单击 Magento 系统->配置->销售选项卡下的运输方法选项卡时,我遇到以下错误:
致命错误:在第 463 行对 D:\xampp\htdocs\magento\app\code\core\Mage\Adminhtml\Block\System\Config\Form.php 中的非对象调用成员函数 toOptionArray()
最令人震惊的是,这是一个全新的 Magento 安装。谁能告诉我如何消除此错误?
添加到 config.xml
<global>
<models>
<stockindicator>
<class>Namespace_ModuleName_Model</class>
</stockindicator>
</models>
</global>
按照本教程解决问题 => 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 中,升级具有新版本的模块,然后重新安装这些模块:
选中“成功安装或升级后清除所有会话”,然后单击“提交更改”。
我遇到了这个问题,现有的答案都没有帮助。经过反复试验,我发现我的问题是由于在 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>
希望这可以帮助其他一些努力解决这个错误的人。
根据 webshopapps 支持,您需要做的就是通过 system->tools->compilation 进行编译。我个人编译,刷新缓存,注销并再次登录。有效。
我之前尝试过更新模块方法,并且在它破坏了 magento 1.9.0.1 后不得不从备份中恢复
这应该可以解决错误:-
System -> Tools -> Compilation
)System -> Cache Management
)去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);
}