Magento 2: xác thực cấu hình đã lưu của system.xml


9

Tôi đã phát triển một tiện ích mở rộng cho Magento2 để lưu các cấu hình bằng cách sử dụng tệp system.xml và tôi muốn xác thực các giá trị mà người dùng nhập vào. Làm thế nào tôi có thể xác nhận những giá trị đó?


Loại giá trị nào bạn muốn xác thực, nếu các giá trị có thể đếm được, hãy thử sử dụng thả xuống và hạn chế người dùng.
amit_game

@amit_game thật không may, đó là các trường nhập văn bản và tôi cần một số xác thực tùy chỉnh (ít nhất là đầu vào không phải là Null)
Omry Zobel

Câu trả lời:


13

Bạn có thể áp dụng xác nhận trên hộp văn bản trong magento 2 như thế này,

<field id="custom_path" translate="label comment" type="text" sortOrder="4" showInDefault="1" showInWebsite="0" showInStore="0">
   <label>Custom Admin Path</label>
   <validate>required-entry</validate>              
   <comment>You will have to sign in after you save your custom admin path.</comment>
</field>

Bạn có thể giữ validate-alphanum or validate-numbercho giá trị chữ và số trong thẻ xác thực.

Cảm ơn.


8

bạn có thể đính kèm mô hình phụ trợ vào trường và bạn có thể xác thực phía máy chủ giá trị.

Bạn có thể tìm thấy một ví dụ trong Magento_Backend/etc/adminhtml/system.xml:

<field id="base_url" translate="label comment" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
    <label>Base URL</label>
    <backend_model>Magento\Config\Model\Config\Backend\Baseurl</backend_model>
    <comment>Specify URL or {{base_url}} placeholder.</comment>
</field>

như bạn có thể thấy, trường này có mô hình phụ trợ Magento\Config\Model\Config\Backend\Baseurl.
Điều này có nghĩa là phương thức Magento\Config\Model\Config\Backend\Baseurl::beforeSavesẽ được gọi là khi lưu trường. Bạn có thể sử dụng phương pháp này để đưa ra các ngoại lệ nếu có lỗi và cấu hình sẽ không được lưu.

Bạn có thể tạo mô hình của riêng bạn hoạt động như một mô hình phụ trợ cho lĩnh vực của bạn.


4

thử cái này

 <field id="test" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="0">
                    <label>Handling Fee</label>
                    <validate>required-entry</validate>
                </field>

xem hình bên dưới nó được xác thực khi tôi nhấn nút lưu.

nhập văn bản được định dạng sẵn ở đây


Làm thế nào để thêm dấu hoa thị (*) sau nhãn?
Rajeev Singh

0

Dưới đây là một ví dụ về Validating cho required-entrytrong system.xml, hy vọng nó sẽ giúp bạn -

<a2bizz_field_test>
    <nhãn> Giá trị văn bản </ nhãn>
    <frontend_type> văn bản </ frontend_type>
    <xác thực> nhập bắt buộc </ xác thực>
    <sort_order> 5 </ sort_order>
    <show_in_default> 1 </ show_in_default>
    <show_in_website> 1 </ show_in_website>
    <show_in_store> 1 </ show_in_store>
</ a2bizz_field_test>

để xác thực tùy chỉnh đi qua URL bên dưới -

http://alanstorm.com/magento_system_config_validation


câu trả lời của bạn là dành cho magento 1. Các op đã hỏi về magento 2
Marius

Oh ! tôi sẽ cập nhật sớm, cảm ơn @Marius
amit_game
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.