Magento 2: system.xml validazione della configurazione salvata


9

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?


Che tipo di valori si desidera convalidare, se i valori sono numerabili, provare a utilizzare il menu a discesa e limitare l'utente.
amit_game,

@amit_game sfortunatamente sono campi di input per il testo e ho bisogno di una convalida personalizzata (almeno che l'input non è Null)
Omry Zobel,

Risposte:


13

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.


8

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.


4

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.

inserisci qui il testo preformattato


come aggiungere un asterisco (*) dopo l'etichetta?
Rajeev Singh,

0

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:

http://alanstorm.com/magento_system_config_validation


la tua risposta è per magento 1. L'op ha chiesto di magento 2
Marius

oh! lo aggiornerò presto, grazie @Marius
amit_game il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.