Come fare per creare una casella di selezione del componente dell'interfaccia utente con un'origine per riempire la casella di selezione


7

Sto cercando di scoprire come posso creare una casella di selezione nel modulo UI del componente Magento e indicarla in alcuni punti in cui posso compilare l'elenco di selezione.

Qualcosa del genere che pensavo avrebbe funzionato ma non lo fa

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

Grazie

Risposte:


19

Puoi aggiungere in questo modo

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

Genio! Posso chiederti da dove hai ottenuto queste informazioni per riferimento futuro?
Stewrat,

Sei nel posto giusto, fratello. Continua a cercare :)
Priyank,

@Priyank dove viene definito modulenameda <item name="source" />? Ho provato il mio da module.xml, route.xml ma questo non funziona. Ricevo questo messaggio di errore: prntscr.com/d9c73e
Vasilii Burlacu

@Vasilii se il tuo nome modulo è il nome del modulo che hai creato. Ad esempio, se nel modulo Magento_Catalog il catalogo è il nome del modulo.
Priyank,

@Priyank non funziona come descritto. Mi chiedo se l'origine faccia riferimento a un modello di modulo o ad altri file .php che contengono opzioni selezionate. PS Ci provo con multiselecttype for formElement.
Vasilii Burlacu,

1

Questo è un approccio che è più comune almeno a partire da 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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.