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ị đó?
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ị đó?
Câu trả lời:
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-number
cho giá trị chữ và số trong thẻ xác thực.
Cảm ơn.
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::beforeSave
sẽ đượ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.
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.
Dưới đây là một ví dụ về Validating cho required-entry
trong 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 -