Magento 2 Formularfeld umgeschalteter Typ

8

Ich möchte eine Umschalt-Eingabeoption in Magento 2 wie folgt erstellen:

Geben Sie hier die Bildbeschreibung ein

aber ich weiß nicht, was für ein Feld das ist, im Moment verwende ich ein Dropdown-Menü wie folgt:

$fieldset->addField(
            'featured',
            'select',
            [
                'label' => __('Featured'),
                'title' => __('Featured'),
                'required' => true,
                'options' => ['1' => __('Yes'), '0' => __('No')],
                'value' => $partner['featured']
            ]
        );
Jäger
quelle
Lassen Sie mich wissen, wenn Sie ein Problem haben.
Prinz Patel
Haben Sie die Lösung gefunden
Jaisa
Ich brauche den gleichen Umschaltknopf in meiner neuen Zahlungsmethode. Könnt ihr bitte anleiten, wie ich das erreichen kann? Bitte folgen Sie dem Link. magento.stackexchange.com/questions/296371/...
irshad

Antworten:

17

Dies ist das Kontrollkästchen- Formularfeld. Welches ist in der UI-Komponentenbibliothek enthalten. Sie können diesen Schalter nicht verwenden $fieldset->addField(). Sie müssen ein Formular mit einer UI-Komponente erstellen, um diese Art der Umschaltung zu erstellen.

<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>
Prinz Patel
quelle
1
Hallo, können Sie den Link für die Js-Komponente für dieses Kontrollkästchen zum
Umschalten anzeigen oder freigeben
@ AjwadTaqvi Überprüfen Sie diese KomponentenMagento_Catalog/js/components/visible-on-option/yesno
Prince Patel
Hallo Prinz. Ihre Antwort ist ziemlich gut. Ich verwende es, um ein neues Feld im Abschnitt mit den benutzerdefinierten Optionswerten hinzuzufügen. Ich kann den Kippschalter mit Hilfe Ihres Codes erstellen und den Wert in der Datenbank speichern. Das Problem ist jedoch, dass der Umschalter nicht standardmäßig gemäß einem Datenbankwert ausgewählt ist. Muss ich dafür etwas tun? Möchten Sie einen Skriptcode usw. hinzufügen?
Indianer
0

Ich empfehle zwar die Verwendung der Ui-Komponentenmethode. Sie können die folgende (leicht umlaufende ) Methode verwenden, um ein Kontrollkästchen zum Umschalten hinzuzufügen, wenn Sie nur über addField verfügen .

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