Конфигурация системы Пользовательская ошибка модели источника

magento.stackexchange https://magento.stackexchange.com//questions/73384

Вопрос

Я пытаюсь создать раздел конфигурации системы с пользовательскими значениями поля

Это мой код:

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 FATAL ОШИБКА: вызов функции элементов tooptionaray () на не объекте в /home/user/public_html/magento/aps/code/core/mage/Adminhtml/block/system/config/form.phpлиния 463

Я уверен, что я делаю что-то не так, потому что без пользовательской исходной модели работает модуль.

Это было полезно?

Решение

dispdown не может получить его исходную модель

Генеракодицетагкод, который показывает ошибку

Может быть, вы не определяли префикс модели.

в соответствии с вашим кодом GeneracodicCode.префикс моделей

Дайте определить префикс модели на macerier_test/system_config_source_dropdown_values

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 с атрибуция
Не связан с magento.stackexchange
scroll top