Cách tạo hộp chọn thành phần ui với nguồn để điền vào hộp chọn


7

Tôi đang cố gắng tìm hiểu làm thế nào tôi có thể tạo một hộp chọn ở dạng ui thành phần magento và trỏ nó đến một số nơi tôi có thể điền vào danh sách chọn.

Một cái gì đó như thế này tôi nghĩ sẽ làm việc nhưng nó không

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

Cảm ơn

Câu trả lời:


19

Bạn có thể thêm như thế này

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

Thiên tài! Tôi có thể hỏi bạn lấy thông tin này từ đâu để tham khảo trong tương lai không?
tiếp viên

Bạn đang ở đúng nơi bro. Chỉ cần tiếp tục tìm kiếm :)
Priyank

@Priyank modulenametừ <item name="source" />đâu được xác định? Tôi đã thử khai thác từ module.xml, Rout.xml nhưng điều này không hoạt động. Tôi nhận được thông báo lỗi này: prntscr.com/d9c73e
Vasilii Burlacu

@Vasilii nếu tên mô-đun của bạn là tên của mô-đun bạn đã tạo. Ví dụ: nếu trong mô-đun Magento_Catalog, danh mục là tên mô-đun.
Priyank

@Priyank nó không hoạt động theo cách bạn mô tả. Tôi tự hỏi nếu nguồn tạo tham chiếu đến mô hình mô-đun hoặc tệp .php khác có chứa các tùy chọn chọn. PS tôi thử cái này với multiselectloại cho formElement.
Vasilii Burlacu

0

Đây là một cách tiếp cận phổ biến hơn ít nhất là từ 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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.