Я разработал расширение для 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 -