8

I Want To Set Minimum Length Value For Street Address Field On Admin Side

enter image description here

I want to set min_text_length = 5 For Street Address Field In Customer Address Form

I am Trying To Update Attribute but Not Working

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 Database Already Set {"max_text_length":255,"min_text_length":5} But Validation not Working

enter image description here

Note :- Admin Side Not Frontend Side.

8
  • you can update attribute and add validation by setup script(can add manually from DB),For front checkout remove validation by changing LayoutProcessor.php and do same thing in register and update address section by removing validation class Jun 19 '19 at 6:56
  • i know about address form and checkout page but in admin side not find any reference or solution
    – Rk Rathod
    Jun 19 '19 at 7:00
  • What is your magento version?
    – Sohel Rana
    Jun 19 '19 at 7:03
  • v 2.2.8 @Sohel Rana
    – Rk Rathod
    Jun 19 '19 at 7:03
  • Please post your code/ mention clearly which form you want to customize in question. Jun 19 '19 at 7:11
10
+100

You Can do it by Script and update validation within it.You have to change

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

You can change it directly from DB you have to do it carefully.

  • Open table eav_attribute and find attribute_code street and get attribute_id from it (generally attribute_id is 28).

enter image description here

  • Open table customer_eav_attribute and find that attribute_id (28 in my case). update in validate_rules column {"max_text_length":255,"min_text_length":5}

enter image description here

  • Now it is done in admin

    enter image description here

Note: You have to remove if it occurs in front

7
  • let me check and replay soon
    – Rk Rathod
    Jun 19 '19 at 7:35
  • no bro its not working i have already try to update attribute
    – Rk Rathod
    Jun 19 '19 at 7:40
  • but in data base already set {"max_text_length":255,"min_text_length":5} but validation is not working
    – Rk Rathod
    Jun 19 '19 at 7:40
  • 1+ for response
    – Rk Rathod
    Jun 19 '19 at 7:49
  • may any other extension conflicts or js error,otherwise you can check it working for me Jun 19 '19 at 8:39
5

i am not sure if this works

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

Example from first name

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

remove this validation

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

up to here

            <dataType>text</dataType>
        </settings>
    </field>
7
  • its not working
    – Rk Rathod
    Jun 17 '19 at 5:56
  • @RkRathod hi sorry i thought you wanted to remove the validation. i will let you know if i find something. sorry again Jun 17 '19 at 7:25
  • @RkRathod try this : <item name="max_text_length" xsi:type="number">5</item> Jun 17 '19 at 7:34
  • @RkRathod did it work? or was it something new you found Jun 17 '19 at 8:05
  • @RkRathod if you dont mind will you share the answer? Jun 17 '19 at 8:39
0

You can do this from the admin (Magento 2.3.3):

Admin address validation

2
  • 1
    Where can i find this in admin?
    – Nayem323
    Feb 5 '20 at 5:35
  • @Nayem Stores -> Attributes -> Customer Address, and select "Street Address" from the list.
    – Niels
    Feb 6 '20 at 8:04
0

update column validate_rules = {"min_text_length":"1","max_text_length":"10","input_validation":"length"} in table customer_eav_attribute with attribute_id = 28. it's working for me for first fied in address enter image description here

Step 2: In ui_component/customer_address_form.xml enter image description here

Step 3: Create Observer enter image description here

enter image description here

Step 4: override file Magento\Customer\Model\Address\DataProvider.php enter image description here

enter image description here

2
  • it's worked. thanks.
    – fudu
    Oct 1 at 7:07
  • because the first validate rules updated in db is worked for the first street view only, and not worked for 2 last street view, so the idea is create 2 new dummy fields and hide 2 last street fields. then when we save the 2 new dummy field, we will set 2 last street fields by that 2 dummy field.
    – fudu
    Oct 1 at 7:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.