Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:对非对象调用成员函数toOptionArray()_Php_Zend Framework_Magento - Fatal编程技术网

Php 致命错误:对非对象调用成员函数toOptionArray()

Php 致命错误:对非对象调用成员函数toOptionArray(),php,zend-framework,magento,Php,Zend Framework,Magento,我正在Magento开发一个付款方式模块。当我在Magento的配置中单击“付款方式”菜单时,我得到以下错误 Fatal error: Call to a member function toOptionArray() on a non-object in \xampp\htdocs\magento\app\code\core\Mage\Adminhtml\Block\System\Config\Form.php on line 421 请参阅下面的链接,了解我正在开发的模块代码 我使用的是

我正在Magento开发一个付款方式模块。当我在Magento的配置中单击“付款方式”菜单时,我得到以下错误

Fatal error: Call to a member function toOptionArray() on a non-object in
\xampp\htdocs\magento\app\code\core\Mage\Adminhtml\Block\System\Config\Form.php
on line 421
请参阅下面的链接,了解我正在开发的模块代码

我使用的是XAMPP1.7.3和magento 1.6.1。
请提供帮助。

在system.xml中,您有以下代码

系统配置源模型不需要扩展超类,也不需要实现除
toOptionArray()
之外的任何方法

EAV select和multiselect属性也使用源模型,但是这些属性需要扩展
EAV/entity\u attribute\u source\u abstract
,并且更复杂,因此我将不在此详述更多细节。

在您的system.xml中,您有以下代码

系统配置源模型不需要扩展超类,也不需要实现除
toOptionArray()
之外的任何方法

EAV select和multiselect属性也使用源模型,但这些属性需要扩展
EAV/entity\u attribute\u source\u abstract
,并且更复杂,因此我将不在这里详细介绍。

第421行必须包含类似$object->toOptionArray()的内容。请发布这部分代码和创建$object的部分。这是Magento的核心部分,错误不会出现在代码中。问题出在我的代码中。不管怎么说,已经完成了。ThanksLine 421必须包含类似$object->toOptionArray()的内容。请发布这部分代码和创建$object的部分。这是Magento的核心部分,错误不会出现在代码中。问题出在我的代码中。不管怎么说,已经完成了。非常感谢你,维奈。我感谢你的回答。他们解释得很好。嗨,Vinai,更正了所有问题后,我在结账页面上没有看到付款方式选项。请帮助。添加另一个问题,这样就不会偏离主题。非常感谢Vinai。我感谢你的回答。他们解释得很好。嗨,Vinai,更正了所有问题后,我在结账页面上没有看到付款方式选项。请帮助。添加另一个问题,这样就不会偏离主题。
<payment_action translate="label">
    <label>Payment Action</label>
    <frontend_type>select</frontend_type>
    <source_model>cashondelivery/createorder</source_model>
    <sort_order>2</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>0</show_in_store>
</payment_action>
public function toOptionArray()
{
    return array(
        array('value' => $value1, 'label' => 'The label for option 1'),
        array('value' => $value2, 'label' => 'The label for option 2'),
        array('value' => $value3, 'label' => 'The label for option 3')
        // ... etc ...
    );
}