Fügen Sie im Backend Magento 2 das Adressfeld für die benutzerdefinierte Validierungsstraße hinzu


8

Ich möchte den Mindestlängenwert für das Straßenadressfeld auf der Admin-Seite festlegen

Geben Sie hier die Bildbeschreibung ein

Ich möchte min_text_length = 5für Street AddressFeld im Kundenadressformular festlegen

Ich versuche, das Attribut zu aktualisieren, aber es funktioniert nicht

public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        if (version_compare($context->getVersion(), '1.0.1', '<')) {
            $customerSetup = $this->customerSetup->create(['setup' => $setup]);
            $customerSetup->addAttribute(
                'customer_address',
                'street',
                [
                    'type' => 'static',
                    'label' => 'Street Address',
                    'input' => 'multiline',
                    'backend' => \Magento\Eav\Model\Entity\Attribute\Backend\DefaultBackend::class,
                    'sort_order' => 70,
                    'multiline_count' => 4,
                    'validate_rules' => '{"max_text_length":255,"min_text_length":5}',
                    'position' => 70,
                ]
            );
        }
    }

In Datenbank bereits festgelegt, {"max_text_length":255,"min_text_length":5}aber Validierung funktioniert nicht

Geben Sie hier die Bildbeschreibung ein

Hinweis: - Admin-Seite Nicht Frontend-Seite.


Sie können Attribut und fügen Validierung durch Setup - Skript aktualisieren (kann manuell von DB hinzufügen) Zum Entfernen Validierung Front Kasse durch LayoutProcessor.php ändern und gleiche Sache im Register und Update - Adresse Abschnitt tun , indem Prüfklasse entfernen
Ketan Borada

Ich kenne das Adressformular und die Checkout-Seite, finde aber auf der Administrationsseite keine Referenz oder Lösung
Rk Rathod

Was ist deine Magento-Version?
Sohel Rana

v 2.2.8 @Sohel Rana
Rk Rathod

Bitte geben Sie Ihren Code ein / geben Sie deutlich an, welches Formular Sie anpassen möchten.
Vivek Kumar

Antworten:


9

Sie können dies per Skript tun und die Validierung darin aktualisieren. Sie müssen dies ändern

'validate_rules' => '{"max_text_length":255,"min_text_length":5}',

Sie können es direkt aus der Datenbank ändern, Sie müssen es sorgfältig tun.

  • Öffnen Sie den Tisch eav_attributeund suchen Sie die attribute_codeStraße und verlassen Sie attribute_idsie (im Allgemeinen ist attribute_id 28).

Geben Sie hier die Bildbeschreibung ein

  • Öffnen Sie den Tisch customer_eav_attributeund finden Sie das attribute_id(28 in meinem Fall). Update in validate_rulesSpalte {"max_text_length":255,"min_text_length":5}

Geben Sie hier die Bildbeschreibung ein

  • Jetzt ist es in admin erledigt

    Geben Sie hier die Bildbeschreibung ein

Hinweis: Sie müssen entfernen, wenn es vorne auftritt


Lassen Sie mich bald überprüfen und wiederholen
Rk Rathod

nein bro es funktioniert nicht ich habe bereits versucht, Attribut zu aktualisieren
Rk Rathod

aber in der Datenbank bereits {"max_text_length": 255, "min_text_length": 5} gesetzt, aber die Validierung funktioniert nicht
Rk Rathod

1+ für Antwort
Rk Rathod

können andere Erweiterungskonflikte oder js Fehler, sonst können Sie überprüfen, ob es für mich funktioniert
Ketan Borada

5

Ich bin nicht sicher, ob das funktioniert

<rule name="required-entry" xsi:type="boolean">true</rule>

Beispiel vom Vornamen

<field name="city" formElement="input">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="source" xsi:type="string">address</item>
            </item>
        </argument>
        <settings>

Entfernen Sie diese Validierung

            <validation>
                <rule name="required-entry" xsi:type="boolean">true</rule>
            </validation>

bis hierher

            <dataType>text</dataType>
        </settings>
    </field>

es funktioniert nicht
Rk Rathod

@RkRathod hi sorry ich dachte du wolltest die validierung entfernen. Ich werde Sie wissen lassen, wenn ich etwas finde. Entschuldigung nochmal
Jibin George

@ RkRathod versuchen Sie dies: <item name = "max_text_length" xsi: type = "number"> 5 </ item>
jibin george

@RkRathod hat es funktioniert? oder war es etwas neues, das du gefunden hast
jibin george

@RkRathod, wenn es Ihnen nichts ausmacht, werden Sie die Antwort teilen?
Jibin George

0

Sie können dies vom Administrator aus tun (Magento 2.3.3):

Validierung der Administratoradresse


Wo finde ich das in admin?
Nayem

@Nayem Stores -> Attribute -> Kundenadresse und wählen Sie "Straße" aus der Liste.
Niels
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.