在前端的Magento2(2.2.5)uicomponent形式中,SAVE按钮没有出现在窗体中

问题描述 投票:1回答:1

我在前端添加了uiform。表单正在加载但保存按钮没有出现。代码详情:

1. employee_form.xml code:

<argument name="data" xsi:type="array">
    <item name="js_config" xsi:type="array">
        <item name="provider" xsi:type="string">employee_form.employee_form_data_source</item>
    </item>
    <item name="label" xsi:type="string" translate="true">Assign Product Form</item>
    <item name="template" xsi:type="string">templates/form/collapsible</item>
    <item name="spinner" xsi:type="string">uiform_index_columns2</item>
</argument>
<settings>
    <buttons>
        <button name="save" class="Cn\Uiform\Block\Employee\Form\SaveButton"/>
        <button name="back">
            <url path="*/*/"/>
            <class>back</class>
            <label translate="true">Back</label>
        </button>
    </buttons>
    <namespace>employee_form</namespace>
    <dataScope>data</dataScope>
    <deps>
        <dep>employee_form.employee_form_data_source</dep>
    </deps>
</settings>
<dataSource name="employee_form_data_source">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
        </item>
    </argument>
    <settings>
        <submitUrl path="*/*/save"/>
    </settings>
    <dataProvider class="Cn\Uiform\Model\DataProvider" name="employee_form_data_source">
        <settings>
            <primaryFieldName>id</primaryFieldName>
            <requestFieldName>id</requestFieldName>
        </settings>
    </dataProvider>
</dataSource>

2. DataProvide.php methods code

public function prepareMeta(array $meta) {
    return $meta;
}
public function getData() {
    return [];
}

3. SaveButton.php class code

使用Magento \ Framework \ View \ Element \ UiComponent \ Control \ ButtonProviderInterface;

class SaveButton extends GenericButton implements ButtonProviderInterface {

    public function getButtonData() {
        return [
            'label' => __('Save Slide'),
            'class' => 'save primary',
            'data_attribute' => [
                'mage-init' => ['button' => ['event' => 'save']],
                'form-role' => 'save',
            ],
            'sort_order' => 90,
        ];
    }
}

4. di.xml

<!--for edit uiform-->
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
    <arguments>
        <argument name="collections" xsi:type="array">
            <item name="employee_form_data_source" xsi:type="string">Cn\Uiform\Model\ResourceModel\Employee\Collection</item>
        </argument>
    </arguments>
</type>

enter image description here

=>但是,ui表单没有SAVE按钮加载。

magento2 html-form uicomponents
1个回答
0
投票

我从来没有在前端实现过IU组件,但就后端而言,我自己的表单中的按钮包含在'data'参数中。例如。

<argument name="data" xsi:type="array">
    <item name="buttons" xsi:type="array”>
        <item name="save" xsi:type="string">Cn\Uiform\Block\Employee\Form\SaveButton</item>
    </item>
</argument>
© www.soinside.com 2019 - 2024. All rights reserved.