Agregar campo de dirección de calle de validación personalizada en el backend Magento 2


8

Deseo establecer el valor de longitud mínima para el campo de la dirección en el lado del administrador

ingrese la descripción de la imagen aquí

Quiero establecer min_text_length = 5para el Street Addresscampo en el formulario de dirección del cliente

Estoy tratando de actualizar el atributo pero no funciona

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

En la base de datos ya establecida {"max_text_length":255,"min_text_length":5}pero la validación no funciona

ingrese la descripción de la imagen aquí

Nota: - Lado del administrador, no del lado frontal.


puede actualizar y añadir el atributo de la validación de secuencia de comandos de configuración (puede añadir manualmente desde DB), Para la validación quitar la caja frontal cambiando LayoutProcessor.php y hacer lo mismo en la sección de registro y dirección de la actualización mediante la eliminación clase de validación
Ketan BORADA

Sé sobre el formulario de dirección y la página de pago, pero en el lado del administrador no encuentro ninguna referencia o solución
Rk Rathod

¿Cuál es tu versión de magento?
Sohel Rana

v 2.2.8 @Sohel Rana
Rk Rathod

Publique su código / mencione claramente qué formulario desea personalizar en cuestión.
Vivek Kumar

Respuestas:


9

Puede hacerlo por script y actualizar la validación dentro de él. Tiene que cambiar

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

Puede cambiarlo directamente desde DB, debe hacerlo con cuidado.

  • Abra la tabla eav_attributey encuentre la attribute_codecalle y obtenga attribute_idde ella (generalmente attribute_id es 28).

ingrese la descripción de la imagen aquí

  • Abra la mesa customer_eav_attributey encuentre eso attribute_id(28 en mi caso). actualizar en validate_rulescolumna {"max_text_length":255,"min_text_length":5}

ingrese la descripción de la imagen aquí

  • Ahora se hace en admin

    ingrese la descripción de la imagen aquí

Nota: Tienes que eliminar si ocurre en frente


déjame comprobar y volver a jugar pronto
Rk Rathod

no hermano no funciona ya he intentado actualizar atributo
Rk Rathod

pero en la base de datos ya está configurado {"max_text_length": 255, "min_text_length": 5} pero la validación no funciona
Rk Rathod

1+ para respuesta
Rk Rathod

cualquier otra extensión de conflicto o error js, de lo contrario, puede comprobar que funciona para mí
Ketan Borada

5

no estoy seguro si esto funciona

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

Ejemplo del primer nombre

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

eliminar esta validación

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

Hasta aquí

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

no funciona
Rk Rathod

@RkRathod hola lo siento, pensé que querías eliminar la validación. Te avisaré si encuentro algo. lo siento de nuevo
jibin george

@RkRathod intente esto: <item name = "max_text_length" xsi: type = "number"> 5 </item>
jibin george

@RkRathod funcionó? o fue algo nuevo que encontraste
jibin george

@RkRathod si no te importa, ¿compartirás la respuesta?
jibin george

0

Puede hacerlo desde el administrador (Magento 2.3.3):

Validación de dirección de administrador


1
¿Dónde puedo encontrar esto en admin?
Nayem

@Nayem Stores -> Atributos -> Dirección del cliente, y seleccione "Dirección" de la lista.
Niels
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.