So erstellen Sie ein Formular-UI-Komponenten-Auswahlfeld mit einer Quelle zum Ausfüllen des Auswahlfelds

7

Ich versuche herauszufinden, wie ich ein Auswahlfeld in Magento-Komponenten-UI-Form erstellen und auf einige verweisen kann, in denen ich die Auswahlliste ausfüllen kann.

So etwas dachte ich würde funktionieren, aber es funktioniert nicht

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

Vielen Dank

Stewrat
quelle

Antworten:

19

Sie können so hinzufügen

<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>
Priyank
quelle
Genius! Darf ich fragen, woher Sie diese Informationen haben, um später darauf zurückgreifen zu können?
Stewrat
Du bist am richtigen Ort, Bruder. Suche einfach weiter :)
Priyank
@Priyank wo ist das modulenamevon <item name="source" />definiert? Ich habe meine aus module.xml, route.xml ausprobiert, aber das funktioniert nicht. Ich erhalte diese Fehlermeldung: prntscr.com/d9c73e
Vasilii Burlacu
@Vasilii, wenn Ihr Modulname der Name Ihres von Ihnen erstellten Moduls ist. Zum Beispiel, wenn im Modul Magento_Catalog der Katalog der Modulname ist.
Priyank
@Priyank es funktioniert nicht so wie du es beschrieben hast. Ich frage mich, ob die Quelle einen Verweis auf ein Modulmodell oder eine andere .php-Datei enthält, die Auswahloptionen enthält. PS Ich versuche das mit multiselectTyp für formElement.
Vasilii Burlacu
0

Dies ist ein Ansatz, der zumindest ab Magento 2.3 üblicher ist:

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