Magento 2 поле формы переключаемого типа

8

Я хочу создать переключаемый параметр ввода в magento 2 следующим образом:

введите описание изображения здесь

но я не знаю, что это за тип поля, сейчас я использую выпадающий список вот так:

$fieldset->addField(
            'featured',
            'select',
            [
                'label' => __('Featured'),
                'title' => __('Featured'),
                'required' => true,
                'options' => ['1' => __('Yes'), '0' => __('No')],
                'value' => $partner['featured']
            ]
        );
охотник
источник
Дайте мне знать, если у вас есть какие-либо проблемы.
Принц Патель
нашел решение год
Джайса
Мне нужна та же кнопка переключения в моем новом способе оплаты, можете ли вы, ребята, подсказать, как мне этого добиться. Пожалуйста, перейдите по ссылке. magento.stackexchange.com/questions/296371/...
Irshad

Ответы:

17

Это поле формы флажка . Который включен в библиотеку компонентов пользовательского интерфейса. Вы не можете использовать этот переключатель $fieldset->addField(). Вам нужно создать форму с компонентом пользовательского интерфейса, чтобы создать этот тип переключения.

<field name="status">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="sortOrder" xsi:type="number">10</item>
            <item name="dataType" xsi:type="string">boolean</item>
            <item name="formElement" xsi:type="string">checkbox</item>
            <item name="source" xsi:type="string">category</item>
            <item name="prefer" xsi:type="string">toggle</item>
            <item name="label" xsi:type="string" translate="true">Status</item>
            <item name="valueMap" xsi:type="array">
                <item name="true" xsi:type="string">1</item>
                <item name="false" xsi:type="string">0</item>
            </item>
            <item name="validation" xsi:type="array">
                <item name="required-entry" xsi:type="boolean">false</item>
            </item>
            <item name="default" xsi:type="string">1</item>
        </item>
    </argument>
</field>
Принц Патель
источник
1
Привет, Можете ли вы показать или поделиться ссылкой на компонент Js для этого переключателя флажок, который скрывает поля
вкл
@AjwadTaqvi Проверьте эти компонентыMagento_Catalog/js/components/visible-on-option/yesno
Принц Патель
Привет принц Ваш ответ довольно хорош. Я использую его, чтобы добавить новое поле в разделе значения настраиваемой опции. Я могу создать тумблер с помощью вашего кода и сохранить значение в базе данных. Но проблема в том, что переключатель не выбран по умолчанию в соответствии со значением базы данных. Что мне нужно для этого сделать? Например, добавить код скрипта и т. Д.?
индийский
0

Пока я рекомендую использовать метод компонента Ui. Вы можете использовать следующий (слегка окольный) способ добавить переключатель, если у вас есть только addField в вашем распоряжении.

$fieldset->addField(
    'my_field',
    'checkbox',
    [
        'label' => __('My field label'), 
        'required' => false, 
        'value' => '1', 
        'name' => 'my_field', 
        'class' => 'admin__actions-switch-checkbox', 
        'after_element_js' => '
            <label class="admin__actions-switch-label" for="my_field">
                <span class="admin__actions-switch-text" data-text-on="'.__('Yes').'" data-text-off="'.__('No').'"></span>
            </label>
        '
    ]
);
sduif
источник