Fehler beim benutzerdefinierten Quellmodell der Systemkonfiguration
-
13-12-2019 - |
Frage
Ich versuche, einen Systemkonfigurationsabschnitt mit benutzerdefinierten Feldwerten zu erstellen
Das ist mein Code:
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>
dann in
Macerier\TEST\Model\System\Config\Source\Dropdown\Values.php
Ich habe das:
<?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',
),
);
}
}
und ich erhalte diesen Fehler:
Schwerwiegender PHP-Fehler:Aufruf einer Mitgliedsfunktion toOptionArray() für ein Nicht-Objekt in /home/user/public_html/magento/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php in Zeile 463
Ich bin mir sicher, dass ich hier etwas falsch mache, denn ohne das benutzerdefinierte Quellmodell funktioniert das Modul.
Lösung
Dropdown kann es nicht bekommen Quellmodell
macerier_test/system_config_source_dropdown_values
Deshalb wird der Fehler angezeigt
Möglicherweise haben Sie kein Modellpräfix definiert.
Gemäß Ihrem Code macerier_test
.ist das Modellpräfix
Definieren wir also das Modellpräfix at config.xml
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>