1

I am trying to add a new configuration field to my module's configuration page that uses a custom source_model, as soon as I add the field to system.xml the whole configuration section goes blank. If I take out the field, the section works fine and shows other fields as expected.

//file app/code/TahirYasin/Hello/etc/adminhtml/system.xml

...
                <field id="custom_select" 
                    translate="label" 
                    type="select" 
                    sortOrder="2" 
                    showInDefault="1" 
                    showInWebsite="1" 
                    showInStore="1">
                    <label>Scope</label>
                    <source_model>TahirYasin\Hello\Model\Config\Source\Custom</source_model>
                </field>
...

my new source model

//file app/code/TahirYasin/Hello/Model/Config/Source/Custom.php

<?php

namespace TahirYasin\Hello\Model\Config\Source;

class Custom implements \Magento\Framework\Option\ArrayInterface
{ 
    /**
     * Return array of options as value-label pairs, eg. value => label
     *
     * @return array
     */
    public function toOptionArray()
    {
        return [
            'value' => 'Label',
            'another_value' => 'Another value',
        ];
    }
}

What am I doing wrong here? Any help plz

  • Finally I ran the command $ tree TahirYasin and realized that the model was not present in my module's directory because I accidentally declared it inside another Magento instance having same module. Never mind. – Tahir Yasin Oct 10 '17 at 8:19
2
public function toOptionArray()
{
    return [
        ['value' => 'val1', 'label' => __('Label 1')],
        ['value' => 'val2', 'label' => __('Label 2')]
    ];
}

Add options to the arrays

| improve this answer | |
  • replaced toOptionArray function with provided code but that did not help either. – Tahir Yasin Oct 10 '17 at 7:52
1

Your class name in the source_model is not the same like the class name. Has to be

<source_model>TahirYasin/Hello/Model/Config/Source/Custom</source_model>
| improve this answer | |
  • thanks for your answer, actually I pasted wrong path while posting question, I updated my question please have a look – Tahir Yasin Oct 9 '17 at 16:29
-3

Hello I have perfect solution which will work 100 % ., You have to define only in system.xml .

<backend_model>Magento\Contact\Model\System\Config\Backend\Links</backend_model>

If you have any query let me know .

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.