Ajouter un champ d'adresse de rue de validation personnalisé dans le backend Magento 2


8

Je veux définir une valeur de longueur minimale pour le champ d'adresse de rue du côté administrateur

entrez la description de l'image ici

Je veux mettre min_text_length = 5pour le Street Addressterrain dans le formulaire d'adresse du client

J'essaie de mettre à jour l'attribut mais ne fonctionne pas

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,
                ]
            );
        }
    }

Dans la base de données déjà définie {"max_text_length":255,"min_text_length":5}mais la validation ne fonctionne pas

entrez la description de l'image ici

Remarque: - Côté administrateur et non côté frontal.


vous pouvez mettre à jour l'attribut et ajouter la validation par le script d'installation (vous pouvez ajouter manuellement à partir de la base de données), pour la vérification avant, supprimez la validation en modifiant LayoutProcessor.php et faites la même chose dans la section d'enregistrement et de mise à jour de l'adresse en supprimant la classe de validation
— Ketan Borada

je connais le formulaire d'adresse et la page de paiement, mais dans le côté administrateur, je ne trouve aucune référence ou solution
— Rk Rathod

Quelle est votre version de magento?
— Sohel Rana

v 2.2.8 @Sohel Rana
— Rk Rathod

Veuillez afficher votre code / mentionner clairement le formulaire que vous souhaitez personnaliser en question.
— Vivek Kumar

Réponses:


9

Vous pouvez le faire par script et mettre à jour la validation à l'intérieur. Vous devez changer

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

Vous pouvez le changer directement à partir de DB, vous devez le faire avec soin.

  • Ouvrez la table eav_attributeet trouvez la attribute_coderue et récupérez attribute_id-la (généralement l'attribut_id est 28).

entrez la description de l'image ici

  • Ouvrez la table customer_eav_attributeet trouvez cela attribute_id(28 dans mon cas). mettre à jour dans la validate_rulescolonne {"max_text_length":255,"min_text_length":5}

entrez la description de l'image ici

  • Maintenant c'est fait en admin

    entrez la description de l'image ici

Remarque: Vous devez supprimer si cela se produit devant


laissez-moi vérifier et rejouer bientôt
— Rk Rathod

non bro son ne fonctionne pas, j'ai déjà essayé de mettre à jour l'attribut
— Rk Rathod

mais dans la base de données déjà définie {"max_text_length": 255, "min_text_length": 5} mais la validation ne fonctionne pas
— Rk Rathod

1+ pour réponse
— Rk Rathod

peut tout autre conflit d'extension ou erreur js, sinon vous pouvez le vérifier fonctionne pour moi
— Ketan Borada

5

je ne sais pas si cela fonctionne

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

Exemple du prénom

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

supprimer cette validation

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

jusqu'ici

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

ça ne fonctionne pas
— Rk Rathod

@RkRathod salut désolé, je pensais que vous vouliez supprimer la validation. je vous ferai savoir si je trouve quelque chose. désolé encore
— jibin george

@RkRathod essayez ceci: <item name = "max_text_length" xsi: type = "number"> 5 </item>
— jibin george

@RkRathod a-t-il fonctionné? ou est-ce quelque chose de nouveau que vous avez trouvé
— jibin george

@RkRathod si cela ne vous dérange pas, partagerez-vous la réponse?
— jibin george

0

Vous pouvez le faire depuis l'administrateur (Magento 2.3.3):

Validation de l'adresse administrateur


1
Où puis-je trouver cela dans admin?
— Nayem

@Nayem Stores -> Attributes -> Customer Address, et sélectionnez "Street Address" dans la liste.
— Niels
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.