Type de champ de formulaire Magento basculé

8

Je veux créer une option d'entrée à bascule dans magento 2 comme ceci:

entrez la description de l'image ici

mais je ne sais pas de quel type de champ il s'agit, en ce moment j'utilise une liste déroulante de sélection comme ceci:

$fieldset->addField(
            'featured',
            'select',
            [
                'label' => __('Featured'),
                'title' => __('Featured'),
                'required' => true,
                'options' => ['1' => __('Yes'), '0' => __('No')],
                'value' => $partner['featured']
            ]
        );
chasseur
la source
Faites-moi savoir si vous avez un problème.
Prince Patel,
avez-vous trouvé la solution
Jaisa
J'ai besoin du même bouton bascule dans mon nouveau mode de paiement. Pouvez-vous, s'il vous plaît, guider comment je peux y parvenir veuillez suivre le lien. magento.stackexchange.com/questions/296371/…
irshad

Réponses:

17

Il s'agit du champ du formulaire de case à cocher . Qui est inclus dans la bibliothèque de composants UI. Vous ne pouvez pas utiliser cette bascule $fieldset->addField(). Vous devez créer un formulaire avec un composant d'interface utilisateur pour créer ce type de bascule.

<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
la source
1
Salut, pouvez-vous afficher ou partager le lien pour le composant Js pour cette case à cocher qui masque les champs on / off
Ajwad Syed
@AjwadTaqvi Vérifiez ces composantsMagento_Catalog/js/components/visible-on-option/yesno
Prince Patel
Salut Prince. Votre réponse est plutôt bonne. Je l'utilise pour ajouter un nouveau champ dans la section de valeur d'option personnalisée. Je peux créer l'interrupteur à bascule à l'aide de votre code et enregistrer la valeur dans la base de données. Mais le problème est que la bascule n'est pas sélectionnée par défaut en fonction d'une valeur de base de données. Y a-t-il quelque chose que je dois faire pour cela? Comme, ajouter un code de script, etc.?
Indian
0

Bien que je recommande d'utiliser la méthode du composant Ui. Vous pouvez utiliser la méthode suivante (légèrement détournée) pour ajouter une case à cocher si vous n'avez que addField à votre disposition.

$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
la source