Eu desenvolvi uma extensão para Magento2 que salva configurações usando um system.xml e gostaria de validar os valores inseridos pelo usuário. Como posso validar esses valores?
Eu desenvolvi uma extensão para Magento2 que salva configurações usando um system.xml e gostaria de validar os valores inseridos pelo usuário. Como posso validar esses valores?
Respostas:
Você pode aplicar a validação na caixa de texto no magento 2 assim,
<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>
Você pode manter o validate-alphanum or validate-number
valor alfanumérico e numérico dentro da tag validate.
Obrigado.
você pode anexar um modelo de back-end ao campo e pode validar o valor do lado do servidor.
Você pode encontrar um exemplo em 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 você pode ver, esse campo possui o modelo de back-end Magento\Config\Model\Config\Backend\Baseurl
.
Isso significa que o método Magento\Config\Model\Config\Backend\Baseurl::beforeSave
será chamado ao salvar o campo. Você pode usar este método para lançar exceções se algo estiver errado e a configuração não for salva.
Você pode criar seu próprio modelo que atua como um modelo de back-end para o seu campo.
tente isso
<field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
<label>Handling Fee</label>
<validate>required-entry</validate>
</field>
veja abaixo a imagem é validada quando clico no botão salvar.
Abaixo está um exemplo de Validando para required-entry
dentro system.xml
, espero que ajude você -
<a2bizz_field_test> <label> Valor do texto </label> <frontend_type> texto </frontend_type> <validate> entrada obrigatória </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 validação personalizada, acesse o URL abaixo -