0

我正在探索 Magento2.2 并尝试使用文档中指定的上传器组件。

http://devdocs.magento.com/guides/v2.2/ui_comp_guide/components/ui-fileuploader.html

我想使用 将产品属性传递给 formUploader 组件formData

下面是我的 XML 文件。

<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="file_uploader_attribute_fieldset">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Documentation Files</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="opened" xsi:type="boolean">true</item>
                <item name="sortOrder" xsi:type="string">2</item>
                <item name="canShow" xsi:type="boolean">true</item>
                <item name="componentType" xsi:type="string">fieldset</item>
            </item>
        </argument>
        <!-- Pass in our own preview template with ability to delete. -->
        <field name="file_uploader_attribute">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Sound Check</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="formElement" xsi:type="string">fileUploader</item>
                    <item name="uploaderConfig" xsi:type="array">
                        <item name="url" xsi:type="url" path="productfileuploader/component/"/>
                        <item name="formData" xsi:type="object">
                            .... ??? ....
                        </item>
                    </item>
                    <item name="isMultipleFiles" xsi:type="boolean">true</item>
                    <item name="component" xsi:type="string">Packt_ProductFileUploader/js/file-uploader</item>
                    <item name="previewTmpl" xsi:type="string">Packt_ProductFileUploader/preview</item>
                    <item name="template" xsi:type="string">Packt_ProductFileUploader/uploader</item>
                </item>
            </argument>
        </field>

    </fieldset>

</form>

我尝试了 DataSource,但无法正常工作。

有什么想法吗 ?

4

1 回答 1

0

根据我的经验,已经玩了几个小时,formData 可以采取以下措施:

数组:

<item name="formData" xsi:type="array">
    <item name="some_value" xsi:type="string">Hard Coded Value</item>
    <item name="some_other_value" xsi:type="string">Other Hard Coded Value</item>
</item>

对象:

注意:当传入一个类时,属性将被转换为值,属性名称是'输入',它的值是值。

<item name="formData" xsi:type="object">Vendor\Module\Model\formData</item>

这个类看起来像:

class formData {

     public $dynamicProperty;

     public function __construct()
     {
         $this->dynamicProperty = '10';
     }
}

然后,您可以使用依赖注入将所需的任何内容传递给构造函数,以设置类中的属性。然后这些属性将转换为将在请求中提交的参数。

上面的类会将以下数据添加到请求中:

Array
(
    [dynamicProperty] => 10
)
于 2018-11-15T08:42:33.007 回答