Magento 2:system.xml保存済み構成の検証


9

system.xmlを使用して構成を保存するMagento2の拡張機能を開発しました。ユーザーが入力した値を検証したいと思います。これらの値を検証するにはどうすればよいですか?


検証する値のタイプ。値がカウント可能な場合は、ドロップダウンを使用してユーザーを制限してください。
amit_game

@amit_game残念ながらテキストの入力フィールドであり、カスタム検証が必要です(少なくとも入力がNullではないこと)
Omry Zobel

回答:


13

あなたはこのようにmagento 2のテキストボックスに検証を適用できます、

<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>

validate-alphanum or validate-number検証タグ内に英数字と数値を保持でき ます。

ありがとう。


8

フィールドにバックエンドモデルをアタッチし、サーバー側の値を検証できます。

あなたは例を見つけることができます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>

ご覧のとおり、このフィールドにはバックエンドモデルがありMagento\Config\Model\Config\Backend\Baseurlます。
これはMagento\Config\Model\Config\Backend\Baseurl::beforeSave、フィールドを保存するときにメソッドが呼び出されることを意味します。このメソッドを使用して、何かが間違っていて構成が保存されない場合に例外をスローできます。

フィールドのバックエンドモデルとして機能する独自のモデルを作成できます。


4

これを試して

 <field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
                    <label>Handling Fee</label>
                    <validate>required-entry</validate>
                </field>

下の画像を参照してください。保存ボタンを押すと検証されます。

ここにフォーマット済みのテキストを入力します


ラベルの後にアスタリスクマーク(*)を追加する方法
Rajeev Singh

0

下記のための検証の一例であるrequired-entrysystem.xml、それはあなたを助けることを願っています-

<a2bizz_field_test>
    <label>テキスト値</ label>
    <frontend_type> text </ frontend_type>
    <validate>必須項目</ 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>

カスタム検証のために、以下のURLを通過します-

http://alanstorm.com/magento_system_config_validation


あなたの答えはmagento 1です。運用担当者はmagento 2について質問しました
マリウス

ああ !私はすぐに更新します。ありがとう@Marius
amit_game
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.