Yii2 Extension hổ trợ bạn kiểm tra dữ liệu đặc thù trong nước ta.
Khi bạn xây dựng hệ thống trong nước thì chắc chắn rằng việc xây dựng các validator
để kiểm tra dữ liệu
đặc thù như: số điện thoại, chứng minh thư, ip Việt Nam, domain Việt Nam... sẽ thường xuyên xảy ra.
Chính vì vậy extension này được xây dựng nên để cung cấp các validator
phổ biến nhất về các dữ liệu
cơ bản tại nước ta.
Các kiểu validator hiện được hổ trợ:
Cài đặt thông qua composer
nếu như đó là một khái niệm mới với bạn xin click vào
đây để tìm hiểu nó.
composer require "yiiviet/validator"
hoặc thêm
"yiiviet/validator": "*"
vào phần require
trong file composer.json.
Về cách sử dụng thì bạn khai báo nó vào rules
của model
, AR
như các validator
thuần của yii2
Ví dụ:
class Info extends Model {
public function rules() {
return [
['IP', 'ipvn'],
['SDT', 'telnumvn'],
['CMND', 'idnumvn'],
['domain', 'domainvn']
];
}
}
Bảng chú thích tên các validator
:
Validator | Chú thích | Cách dùng |
---|---|---|
telnumvn | Dùng để kiểm tra số điện thoại Việt Nam (viettel, vina, vsat, beeline, mobi, vietnammobi, số bàn...) | Nhấn vào đây |
idnumvn | Dùng để kiểm tra chứng minh thư, thẻ căn cước (chứng minh 9 số, 12 số, thẻ căn cước) | Nhấn vào đây |
ipvn | Dùng để kiểm tra IP Việt Nam | Nhấn vào đây |
domainvn | Dùng để kiểm tra tên miền Việt Nam (là tên miền hợp lệ và kết thúc bằng .vn ) |
Nhấn vào đây |
Khai báo rules:
return [
['SDT', 'telnumvn', 'message' => '{attribute} không phải là số điện thoại Việt Nam'],
];
Chỉ muốn kiểm tra số di động loại bỏ số bàn
return [
['SDT', 'telnumvn', 'exceptTelco' => ['landLine']],
];
Chỉ muốn kiểm tra số viettel
return [
['SDT', 'telnumvn', 'onlyTelco' => ['viettel']],
];
Chỉ muốn kiểm tra số viettel
, mobi
, vina
return [
['SDT', 'telnumvn', 'onlyTelco' => ['viettel', 'mobiFone', 'vinaPhone']],
];
Danh sách tên các telco (nhà mạng)
Telco | Đại diện |
---|---|
landLine | Số điện thoại bàn |
viettel | Viettel |
vinaPhone | Vinaphone |
mobiFone | Mobifone |
vietNamMobile | Viet Nam Mobile |
gMobile | G Mobile |
beeline | Beeline |
vsat | Vsat |
indoChina | IndoChina |
Khai báo rules:
return [
['CMND', 'idnumvn', 'message' => '{attribute} không phải là chứng minh thư Việt Nam'],
];
Chỉ muốn kiểm tra số chứng minh (9 và 12 số) thư loại bỏ thẻ căn cước
return [
['SDT', 'telnumvn', 'onlyId' => true],
];
Khai báo rules:
return [
['IP', 'ipvn', 'message' => '{attribute} phải là IP Việt Nam!'],
];
Do validator
này kế thừa IpValidator
của Yii2
nên tất cả các tham số thiết lập nâng cao
bạn có thể kham khảo thêm tại đây, còn không bạn chỉ cần khai báo như trên là đủ.
Khai báo rules:
return [
['domain', 'domainvn', 'message' => '{attribute} phải là tên miền Việt Nam!'],
];
Do validator
này kế thừa DomainValidator
của Dmitry Kulikov
nên tất cả các tham số thiết lập nâng cao
bạn có thể kham khảo thêm tại đây, còn không bạn chỉ cần khai báo như trên là đủ.
Nếu như bạn cảm thấy các validators
bên trên vẫn chưa đủ đối với thị trường trong nước và bạn muốn
đóng góp để phát triển chung, chúng tôi rất hoan nghênh! Hãy tạo các issue
để đóng góp ý tưởng cho
phiên bản kế tiếp hoặc tạo PR
để đóng góp thêm các validator
còn thiếu sót. Cảm ơn!