Ich habe eine Erweiterung für Magento2 entwickelt, die Konfigurationen mithilfe einer system.xml speichert, und ich möchte die vom Benutzer eingegebenen Werte überprüfen. Wie kann ich diese Werte validieren?
Ich habe eine Erweiterung für Magento2 entwickelt, die Konfigurationen mithilfe einer system.xml speichert, und ich möchte die vom Benutzer eingegebenen Werte überprüfen. Wie kann ich diese Werte validieren?
Antworten:
Sie können die Validierung auf Textfelder in Magento 2 wie folgt anwenden:
<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>
Sie können validate-alphanum or validate-number
für alphanumerische und numerische Werte im Validierungs-Tag behalten .
Vielen Dank.
Sie können dem Feld ein Backend-Modell hinzufügen und die Werteserverseite validieren.
Ein Beispiel finden Sie 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>
Wie Sie sehen können, enthält dieses Feld das Backend-Modell Magento\Config\Model\Config\Backend\Baseurl
.
Dies bedeutet, dass die Methode Magento\Config\Model\Config\Backend\Baseurl::beforeSave
aufgerufen wird, um das Feld zu speichern. Mit dieser Methode können Sie Ausnahmen auslösen, wenn etwas nicht stimmt und die Konfiguration nicht gespeichert wird.
Sie können Ihr eigenes Modell erstellen, das als Backend-Modell für Ihr Feld fungiert.
Versuche dies
<field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
<label>Handling Fee</label>
<validate>required-entry</validate>
</field>
siehe Bild unten Es wird validiert, wenn ich auf die Schaltfläche Speichern drücke.
Unten finden Sie ein Beispiel für die Validierung für required-entry
in. Ich system.xml
hoffe, es wird Ihnen helfen.
<a2bizz_field_test> <label> Textwert </ label> <frontend_type> text </ frontend_type> <validieren> erforderlicher Eintrag </ validieren> <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>
Für eine benutzerdefinierte Validierung gehen Sie über die folgende URL -