Magento 2: system.xml сохраненная проверка конфигурации

9

Я разработал расширение для Magento2, которое сохраняет настройки с помощью system.xml, и я хотел бы проверить значения, введенные пользователем. Как я могу проверить эти значения?

Омри Зобель
источник
Какой тип значений вы хотите проверить, если значения счетные, попробуйте использовать раскрывающийся список и ограничить пользователя.
amit_game
@amit_game, к сожалению, это поля ввода для текста, и мне нужна некоторая пользовательская проверка (по крайней мере, что ввод не нулевой)
Omry Zobel

Ответы:

13

Вы можете применить проверку к текстовому полю в magento 2 следующим образом:

<field id="custom_path" translate="label comment" type="text" sortOrder="4" showInDefault="1" showInWebsite="0" showInStore="0">
   <label>Custom Admin Path</label>
   <validate>required-entry</validate>              
   <comment>You will have to sign in after you save your custom admin path.</comment>
</field>

Вы можете сохранить validate-alphanum or validate-numberбуквенно-цифровое и числовое значение внутри тега проверки.

Спасибо.

Ракеш Джесадия
источник
8

вы можете прикрепить бэкэнд-модель к полю и проверить валидацию на стороне сервера значений.

Вы можете найти пример в Magento_Backend/etc/adminhtml/system.xml:

<field id="base_url" translate="label comment" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
    <label>Base URL</label>
    <backend_model>Magento\Config\Model\Config\Backend\Baseurl</backend_model>
    <comment>Specify URL or {{base_url}} placeholder.</comment>
</field>

как видите, это поле имеет бэкэнд-модель Magento\Config\Model\Config\Backend\Baseurl.
Это означает, что метод Magento\Config\Model\Config\Backend\Baseurl::beforeSaveбудет вызван при сохранении поля. Вы можете использовать этот метод, чтобы генерировать исключения, если что-то не так и конфигурация не будет сохранена.

Вы можете создать свою собственную модель, которая выступает в качестве базовой модели для вашего поля.

Мариус
источник
4

попробуй это

 <field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
                    <label>Handling Fee</label>
                    <validate>required-entry</validate>
                </field>

см. рисунок ниже, он подтверждается, когда я нажимаю кнопку сохранения.

введите предварительно отформатированный текст здесь

Bojjaiah
источник
как добавить звездочку (*) после метки?
Раджив Сингх
0

Ниже приведен пример проверки достоверности для required-entryв system.xml, надеюсь , что это поможет вам -

<A2bizz_field_test>
    <label> Текстовое значение </ label>
    <Frontend_type> текст </ frontend_type>
    <Validate> требуется ввод </ Validate>
    <Порядок_сортировки> 5 </ порядок_сортировки>
    <Show_in_default> 1 </ show_in_default>
    <Show_in_website> 1 </ show_in_website>
    <Show_in_store> 1 </ show_in_store>
</ A2bizz_field_test>

для пользовательской проверки перейдите по нижеуказанному URL -

http://alanstorm.com/magento_system_config_validation

amit_game
источник
ваш ответ для magento 1. Оператор спросил о magento 2
Marius
ой ! я скоро обновлю его, спасибо @Marius
amit_game