Ho sviluppato un'estensione per Magento2 che salva le configurazioni utilizzando un system.xml e vorrei convalidare i valori immessi dall'utente. Come posso validare quei valori?
Ho sviluppato un'estensione per Magento2 che salva le configurazioni utilizzando un system.xml e vorrei convalidare i valori immessi dall'utente. Come posso validare quei valori?
Risposte:
Puoi applicare la validazione su textbox in magento 2 in questo modo,
<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>
È possibile conservare il validate-alphanum or validate-number
valore alfanumerico e numerico all'interno del tag di convalida.
Grazie.
puoi collegare un modello di backend al campo e puoi validare il lato server del valore.
Puoi trovare un esempio in 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>
come puoi vedere, questo campo ha il modello di backend Magento\Config\Model\Config\Backend\Baseurl
.
Ciò significa che il metodo Magento\Config\Model\Config\Backend\Baseurl::beforeSave
verrà chiamato durante il salvataggio del campo. Puoi usare questo metodo per generare eccezioni se qualcosa non va e la configurazione non verrà salvata.
Puoi creare il tuo modello che funge da modello di backend per il tuo campo.
prova questo
<field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
<label>Handling Fee</label>
<validate>required-entry</validate>
</field>
vedi l'immagine qui sotto è convalidata quando premo il pulsante Salva.
Di seguito è riportato un esempio di convalida per required-entry
in system.xml
, spero che ti possa aiutare -
<A2bizz_field_test> <label> Valore del testo </label> <Frontend_type> testo </ frontend_type> <Validate> richiesta-entry </ 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>
per la convalida personalizzata passare attraverso l'URL seguente: