我正在尝试使用自定义字段值创建系统配置部分

这是我的代码:

system.xml

<?xml version="1.0"?>
<config>
    <tabs>
        <macerierconf translate="label">
            <label>Macerier</label>
            <sort_order>150</sort_order>
        </macerierconf>
    </tabs>
    <sections>
        <tab1 translate="label" module="adminhtml">
            <label>Settings</label>
            <tab>macerierconf</tab>
            <sort_order>100</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <smssending translate="label comment">
                    <label>test label</label>
                    <sort_order>60</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <device translate="label comment">
                            <label>Device</label>
                            <frontend_type>select</frontend_type>
                            <source_model>macerier_test/system_config_source_dropdown_values</source_model>
                            <sort_order>30</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>0</show_in_website>
                            <show_in_store>0</show_in_store>
                        </device>
                    </fields>
                </smssending>
            </groups>
        </tab1>
    </sections>
</config>
.

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Macerier_TEST>
            <version>0.1.0</version>
        </Macerier_TEST>
    </modules>
    <global>
        <models>
            <macerier_test>
                <class>Macerier_TEST_Model</class>
            </macerier_test>
        </models>
    </global>
</config>
.

然后在Macerier\TEST\Model\System\Config\Source\Dropdown\Values.php中我有这个:

<?php

class Macerier_TEST_Model_System_Config_Source_Dropdown_Values
{
    public function toOptionArray()
    {
        return array(
            array(
                'value' => 'key1',
                'label' => 'Value 1',
            ),
            array(
                'value' => 'key2',
                'label' => 'Value 2',
            ),
        );
    }
}
.

,我收到此错误:

php致命错误:调用到/home/user/public_html/magento/pode/code/core/mage/adminhtml/block/system/config/bood.php上的非对象上的成员函数oroptionArray()线463

我相信我在这里做错了,因为没有自定义源模型,模块正在工作。

有帮助吗?

解决方案

下拉目无法获得它源模型

macerier_test/system_config_source_dropdown_values为什么它显示错误

可能是您没有定义模型前缀。

作为代码生成的代码。模型前缀

因此,在macerier_test

中定义模型前缀

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Macerier_TEST>
            <version>0.1.0</version>
        </Macerier_TEST>
    </modules>
    <!-- add this -->
    <global>
    <models>
        <macerier_test> <!-- call as model prefix identifier -->
            <class>Macerier_TEST_Model</class>
        </macerier_test>
    </models>
    </global>

</config>
.

许可以下: CC-BY-SA归因
scroll top