Configurazione del sistema Errore del modello di origine personalizzato
-
13-12-2019 - |
Domanda
Sto cercando di creare una sezione di configurazione del sistema con valori di campo personalizzati
Questo è il mio codice:
.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>
.
.Allora in
Macerier\TEST\Model\System\Config\Source\Dropdown\Values.php
ho questo:
<?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',
),
);
}
}
.
E ricevo questo errore:
.PHP Fatale Errore: chiamato a una funzione membro Tooptionarray () su un non oggetto in /home/user/public_html/magento/app/code/core/mage/App/Code/Core/mage/Adminhtml/Block/system/config/form.php onLinea 463
Sono sicuro che sto facendo qualcosa di sbagliato qui perché senza il modello di origine personalizzato il modulo funziona.
Soluzione
Dropdown non può ottenerlo Modello di origine
macerier_test/system_config_source_dropdown_values
per cui mostra l'errore
potrebbe essere non hai definito il prefisso del modello.
come come il tuo codice macerier_test
.è il prefisso dei modelli
Quindi lascia definire il prefisso del modello a 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>
.