Конфигурация системы Пользовательская ошибка модели источника
-
13-12-2019 - |
Вопрос
Я пытаюсь создать раздел конфигурации системы с пользовательскими значениями поля
Это мой код:
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
<?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>
.