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?
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?
Respuestas:
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-number
valores alfanuméricos y numéricos dentro de la etiqueta de validación.
Gracias.
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::beforeSave
se 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.
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.
A continuación se muestra un ejemplo de Validación required-entry
en 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: