Magento 2:system.xml保存的配置验证


9

我为Magento2开发了一个扩展,该扩展使用system.xml保存配置,我想验证用户输入的值。如何验证这些值?


您想验证哪种类型的值,如果这些值是可数的,请尝试使用下拉列表并限制用户。
amit_game 2015年

@amit_game不幸的是,它是文本的输入字段,我需要一些自定义验证(至少该输入不是Null)
Omry Zobel 2015年

Answers:


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>

见下图,当我点击“保存”按钮时,它已经过验证。

在此输入预格式化的文本


标签后如何添加星号(*)?
Rajeev Singh

0

以下是验证required-entryin 的示例system.xml,希望对您有所帮助-

<a2bizz_field_test>
    <label>文本值</ label>
    <frontend_type>文本</ frontend_type>
    <validate>必填项</ validate>
    <sort_order> 5 </ sort_order>
    <show_in_default> 1 </ show_in_default>
    <show_in_website> 1 </ show_in_website>
    <show_in_store> 1 </ show_in_store>
</ a2bizz_field_test>

对于自定义验证,请通过以下网址-

http://alanstorm.com/magento_system_config_validation


您的答案是针对magento 1的。操作人员询问了有关magento 2的问题
Marius

哦!我会尽快更新,谢谢@Marius
amit_game 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.