選択ボックスに入力するソースを含むフォームUIコンポーネント選択ボックスを作成する方法


7

私はどのようにしてmagentoコンポーネントのuiフォームで選択ボックスを作成し、それを選択リストに入力できる場所にポイントする方法を見つけようとしています。

このような何かがうまくいくと思ったがそれはしません

<field name="formats">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="dataType" xsi:type="string">text</item>
                <item name="disabled" xsi:type="boolean">false</item>
                <item name="label" xsi:type="string" translate="true">formats</item>
                <item name="formElement" xsi:type="string">select</item>
                <item name="enabled" xsi:type="boolean">false</item>
                <item name="source" xsi:type="string">Magento\Catalog\Model\Product\AttributeSet\Options</item>
                <item name="dataScope" xsi:type="string">formats</item>
            </item>
        </argument>
    </field>

ありがとう

回答:


19

このように追加できます

<field name="formats">
    <argument name="data" xsi:type="array">
        <item name="options" xsi:type="object">Magento\Catalog\Model\Product\AttributeSet\Options</item>
        <item name="config" xsi:type="array">
            <item name="dataType" xsi:type="string">text</item>
            <item name="label" xsi:type="string" translate="true">Formats</item>
            <item name="formElement" xsi:type="string">select</item>
            <item name="source" xsi:type="string">modulename</item>
            <item name="dataScope" xsi:type="string">formats</item>
            <item name="default" xsi:type="string">0</item>
            <item name="validation" xsi:type="array">
                <item name="required-entry" xsi:type="boolean">true</item>
            </item>
        </item>
    </argument>
</field>

天才!今後の参考のために、この情報の入手先を教えていただけますか。
stewrat 2016年

あなたは正しい場所の仲間です。ただ検索し続けるだけです:)
Priyank 2016年

さ@Priyank modulenameから<item name="source" />定義されましたか?module.xml、routes.xmlから試してみましたが、うまくいきません。次のエラーメッセージが表示されます:prntscr.com/d9c73e
Vasilii Burlacu

@Vasilii(モジュール名が作成したモジュールの名前の場合)たとえば、モジュールMagento_Catalogの場合、カタログはモジュール名です。
Priyank 2016年

@Priyankそれはあなたが説明した方法では機能しません。ソースがモジュールモデルまたは選択オプションを含む他の.phpファイルへの参照を作成するかどうか疑問に思います。PS私はのmultiselectタイプでこれを試しformElementます。
Vasilii Burlacu

0

これは、少なくともMagento 2.3以降で一般的なアプローチです。

<field name="image_overlay_art" sortOrder="40" formElement="select">
    <settings>
        <dataType>int</dataType>
        <label translate="true">Show Art on Image Overlay</label>
    </settings>
    <formElements>
        <select>
            <settings>
                <options class="\Magento\Config\Model\Config\Source\Yesno"/>
            </settings>
        </select>
    </formElements>
</field>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.