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-numbervalore 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::beforeSaveverrà 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-entryin 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: