如何创建带有填充源的表单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>

谢谢

Answers:


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

您来对地方了。保持搜索:)
Priyank

@Priyank的modulenamefrom <item name="source" />定义在哪里?我从module.xml,routes.xml尝试了我的方法,但这不起作用。我的确收到此错误消息:prntscr.com/d9c73e
Burlacu

@Vasilii(如果您的模块名称是您创建的模块的名称)。例如,如果在模块Magento_Catalog中,目录就是模块名称。
Priyank

@Priyank,它与您描述的方式不符。我想知道源代码是否引用了包含选择选项的模块模型或其他.php文件。附言:我尝试使用multiselecttype formElement
Vasilii Burlacu

1

这种方法至少在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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.