В Magento2 (2.2.5) однокомпонентная форма во внешнем интерфейсе кнопка СОХРАНИТЬ не появляется вместе с формой - PullRequest
0 голосов
/ 30 октября 2018

Я добавил форму в интерфейсе. Форма загружается, но кнопка сохранения не появляется. Детали кода:

1. Код employee_form.xml:

<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

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

3. Код класса SaveButton.php

использовать 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

=> Но форма пользовательского интерфейса загружается без кнопки SAVE .

1 Ответ

0 голосов
/ 10 ноября 2018

Я никогда не реализовывал компоненты 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...