Magento 2: system.xml ha guardado la validación de configuración


9

Desarrollé una extensión para Magento2 que guarda las configuraciones usando un system.xml y me gustaría validar los valores que ingresa el usuario. ¿Cómo puedo validar esos valores?


Qué tipo de valores desea validar, si los valores son contables, intente usar el menú desplegable y restringir el usuario.
amit_game

@amit_game desafortunadamente son campos de entrada para texto y necesito alguna validación personalizada (al menos que la entrada no es nula)
Omry Zobel

Respuestas:


13

Puede aplicar la validación en el cuadro de texto en magento 2 de esta manera,

<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>

Puede guardar validate-alphanum or validate-numbervalores alfanuméricos y numéricos dentro de la etiqueta de validación.

Gracias.


8

puede adjuntar un modelo de back-end al campo y puede validar el valor del lado del servidor.

Puedes encontrar un ejemplo en 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>

Como puede ver, este campo tiene el modelo de back-end Magento\Config\Model\Config\Backend\Baseurl.
Esto significa que Magento\Config\Model\Config\Backend\Baseurl::beforeSavese llamará al método al guardar el campo. Puede usar este método para generar excepciones si algo está mal y la configuración no se guardará.

Puede crear su propio modelo que actúe como modelo de fondo para su campo.


4

prueba esto

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

ver la imagen a continuación se valida cuando presiono el botón Guardar.

ingrese el texto preformateado aquí


¿Cómo agregar una marca de asterisco (*) después de la etiqueta?
Rajeev Singh el

0

A continuación se muestra un ejemplo de Validación required-entryen system.xml, espero que te ayude:

<a2bizz_field_test>
    <label> Valor de texto </label>
    <frontend_type> texto </frontend_type>
    <validate> entrada obligatoria </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>

para la validación personalizada, vaya a la siguiente URL:

http://alanstorm.com/magento_system_config_validation


su respuesta es para magento 1. El operador le preguntó sobre magento 2
Marius

Oh ! Lo actualizaré pronto, gracias @Marius
amit_game
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.