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.

Rk Rathod
fuente
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

Ketan Borada
fuente
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>
jibin george
fuente
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

Niels
fuente
1
¿Dónde puedo encontrar esto en admin?
Nayem
@Nayem Stores -> Atributos -> Dirección del cliente, y seleccione "Dirección" de la lista.
Niels