Tambahkan Bidang Alamat Jalan Validasi Kustom di Magento backend 2

8

Saya Ingin Menetapkan Nilai Panjang Minimum Untuk Bidang Alamat Jalan Di Sisi Admin

masukkan deskripsi gambar di sini

Saya ingin mengatur min_text_length = 5Untuk Street AddressBidang Dalam Formulir Alamat Pelanggan

Saya mencoba untuk memperbarui atribut tetapi tidak berfungsi

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

Dalam Database Sudah Ditetapkan {"max_text_length":255,"min_text_length":5}Tetapi Validasi tidak berfungsi

masukkan deskripsi gambar di sini

Catatan: - Sisi Admin Bukan Sisi Frontend.

Rk Rathod
sumber
Anda dapat memperbarui atribut dan menambahkan validasi dengan skrip setup (dapat menambahkan secara manual dari DB), Untuk checkout depan hapus validasi dengan mengubah LayoutProcessor.php dan lakukan hal yang sama di bagian register dan perbarui alamat dengan menghapus kelas validasi
Ketan Borada
saya tahu tentang formulir alamat dan halaman checkout tetapi di sisi admin tidak menemukan referensi atau solusi
Rk Rathod
Apa versi magento Anda?
Sohel Rana
v 2.2.8 @Sohel Rana
Rk Rathod
Silakan kirim kode Anda / sebutkan dengan jelas bentuk mana yang ingin Anda sesuaikan dalam pertanyaan.
Vivek Kumar

Jawaban:

9

Anda dapat melakukannya dengan Script dan memperbarui validasi di dalamnya. Anda harus berubah

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

Anda dapat mengubahnya langsung dari DB, Anda harus melakukannya dengan hati-hati.

  • Buka tabel eav_attributedan temukan attribute_codejalan dan dapatkan attribute_iddari sana (umumnya attribute_id adalah 28).

masukkan deskripsi gambar di sini

  • Buka tabel customer_eav_attributedan temukan itu attribute_id(28 dalam kasus saya). pembaruan dalam validate_ruleskolom {"max_text_length":255,"min_text_length":5}

masukkan deskripsi gambar di sini

  • Sekarang dilakukan di admin

    masukkan deskripsi gambar di sini

Catatan: Anda harus menghapus jika itu terjadi di depan

Ketan Borada
sumber
biarkan saya memeriksa dan memutar ulang segera
Rk Rathod
tidak ada bro yang tidak berfungsi saya sudah mencoba untuk memperbarui atribut
Rk Rathod
tetapi dalam basis data sudah diset {"max_text_length": 255, "min_text_length": 5} tetapi validasi tidak berfungsi
Rk Rathod
1+ untuk respons
Rk Rathod
mungkin ada konflik ekstensi lain atau kesalahan js, jika tidak Anda dapat memeriksanya bekerja untuk saya
Ketan Borada
5

saya tidak yakin apakah ini berhasil

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

Contoh dari nama depan

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

hapus validasi ini

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

sampai sini

            <dataType>text</dataType>
        </settings>
    </field>
jibin george
sumber
ini tidak berfungsi
Rk Rathod
@RkRathod hai maaf saya pikir Anda ingin menghapus validasi. saya akan memberi tahu Anda jika saya menemukan sesuatu. maaf lagi
jibin george
@RkRathod coba ini: <item name = "max_text_length" xsi: type = "number"> 5 </item>
jibin george
@RkRathod berhasil? atau itu sesuatu yang baru Anda temukan
jibin george
@RkRathod jika Anda tidak keberatan, bisakah Anda membagikan jawabannya?
jibin george
0

Anda dapat melakukan ini dari admin (Magento 2.3.3):

Validasi alamat admin

Niels
sumber
1
Di mana saya dapat menemukan ini di admin?
Nayem
@Nayem Stores -> Atribut -> Alamat Pelanggan, dan pilih "Alamat Jalan" dari daftar.
Niels