Я разработал расширение для Magento2, которое сохраняет настройки с помощью system.xml, и я хотел бы проверить значения, введенные пользователем. Как я могу проверить эти значения?
Я разработал расширение для Magento2, которое сохраняет настройки с помощью system.xml, и я хотел бы проверить значения, введенные пользователем. Как я могу проверить эти значения?
Ответы:
Вы можете применить проверку к текстовому полю в 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буквенно-цифровое и числовое значение внутри тега проверки.
Спасибо.
вы можете прикрепить бэкэнд-модель к полю и проверить валидацию на стороне сервера значений.
Вы можете найти пример в 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будет вызван при сохранении поля. Вы можете использовать этот метод, чтобы генерировать исключения, если что-то не так и конфигурация не будет сохранена.
Вы можете создать свою собственную модель, которая выступает в качестве базовой модели для вашего поля.
попробуй это
<field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
<label>Handling Fee</label>
<validate>required-entry</validate>
</field>
см. рисунок ниже, он подтверждается, когда я нажимаю кнопку сохранения.
Ниже приведен пример проверки достоверности для 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 -