Tipo de alternância do campo de formulário Magento 2

8

Eu quero criar uma opção de entrada de alternância no magento 2 assim:

insira a descrição da imagem aqui

mas não sei que tipo de campo é esse. No momento, estou usando o menu suspenso de seleção como este:

$fieldset->addField(
            'featured',
            'select',
            [
                'label' => __('Featured'),
                'title' => __('Featured'),
                'required' => true,
                'options' => ['1' => __('Yes'), '0' => __('No')],
                'value' => $partner['featured']
            ]
        );
Caçador
fonte
Deixe-me saber se você tem algum problema.
Prince Patel
fez yoy encontrou a solução
Jaisa
Preciso do mesmo botão de alternância no meu novo método de pagamento. Vocês podem orientar como posso alcançá-lo. siga o link. magento.stackexchange.com/questions/296371/...
irshad

Respostas:

17

Este é o campo do formulário da caixa de seleção . Que está incluído na biblioteca de componentes da interface do usuário. Você não pode usar esta alternância $fieldset->addField(). Você precisa criar um formulário com o componente de interface do usuário para criar esse tipo de alternância.

<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>
Prince Patel
fonte
11
Oi, você pode mostrar ou link de compartilhamento para o componente Js para esta opção de alternância que campos couros em on / off
Ajwad Syed
@AjwadTaqvi Verifique estes componentesMagento_Catalog/js/components/visible-on-option/yesno
Príncipe Patel
Oi Principe. Sua resposta é muito boa. Estou usando-o para adicionar um novo campo na seção de valor da opção personalizada. Posso criar a opção de alternância com a ajuda do seu código e salvar o valor no banco de dados. Mas o problema é que a alternância não é selecionada por padrão, de acordo com um valor do banco de dados. Existe algo que eu preciso fazer para isso? Como, adicione um código de script etc?
Indiana
0

Enquanto eu recomendo usar o método de componente da interface do usuário. Você pode usar a seguinte maneira (ligeiramente rotatória) para adicionar uma caixa de seleção de alternância se você tiver apenas addField à sua disposição.

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