2

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

1
  • 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. Oct 10, 2017 at 8:19

3 Answers 3

3
public function toOptionArray()
{
    return [
        ['value' => 'val1', 'label' => __('Label 1')],
        ['value' => 'val2', 'label' => __('Label 2')]
    ];
}

Add options to the arrays

1
  • replaced toOptionArray function with provided code but that did not help either. Oct 10, 2017 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>
1
  • thanks for your answer, actually I pasted wrong path while posting question, I updated my question please have a look Oct 9, 2017 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 .

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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