🤩Các rule validation có sẵn (Available validation rules) Phần 3 (ok)
https://viblo.asia/p/tap-21-validation-laravel-tiep-theo-gAm5yGaAZdb
Các rule validation có sẵn (Available validation rules)
Accepted
Trường được xác thực phải có giá trị là "yes", "on", 1 hoặc true. Hữu dụng khi tạo checkbox "Ghi nhớ đăng nhập" hoặc "Đồng ý điều khoản và dịch vụ"...

C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Active URL

Trường được xác thực phải có bản ghi A hoặc AAAA hợp lệ theo dns_get_record của PHP. Cái này theo mình biết thường dùng để kiểm tra tên miền đã được đăng ký hay chưa, các bạn có thể Google để tìm hiểu thêm. Thường áp dụng cho mấy website thuê tên miền, hosting...
C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Date
Trường được xác thực phải có giá trị là một date hợp lệ, không liên quan theo hàm strtotime của PHP.

C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Date format
Trường được xác thực phải phù hợp với định dạng date đã cho. Bạn chỉ nên sử dụng một trong hai rule date hoặc date_format để xác định một trường, không phải cả hai.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Date equals
Trường được xác thực phải có date bằng date đã cho. Date được chuyển vào hàm strtotime của PHP.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
After (Date)
Trường được xác thực phải có giá trị là date sau date đã cho. Date sẽ được chuyển vào strtotime của PHP.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
After or equal (Date)
Trường được xác thực phải có giá trị là date sau hoặc bằng date đã cho.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Alpha
Trường được xác thực chỉ được chứa chữ cái.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Alpha dash
Trường được xác thực chỉ được chứa chữ cái và số, cũng như dấu - và _.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Alpha numeric
Trường được xác thực chỉ được chứa chữ cái và số.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Numeric
Trường được xác thực phải là một số.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Digits
Trường được xác thực phải là số và có độ dài bẳng độ dài đã cho.
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
Digits between
Trường được xác thực phải là số và có độ dài nằm trong khoảng min, max đã cho.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Integer
Trường được xác thực phải là một số nguyên.
Array
Trường được xác thực phải có định dạng mảng PHP.


C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Distinct
Khi làm việc với array, trường được xác thực không được có gí trị trùng lặp nào.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
Hoặc
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
In

Trường được xác thực phải là một phần tử nằm trong mảng đã cho.
Mặc định:
Đôi khi sử dụng valiation rule còn khá nhiều hạn chế. Chính vì vậy, ta có thể sử dụng method Rule::in để linh hoạt hơn.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
In array
Trường được xác thực phải có giá trị thuộc các key của mảng. Thường để kiểm tra một giá trị có tồn tại trong multi-level array hay không.

C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Not in
Trường được xác thực phải không phải là một phần tử nằm trong mảng đã cho.
Bail
Dừng validation rule input nếu thất bại tại rule trước đó. đỡ phải tốn query :)
Before (Date)
Trường được xác thực phải có giá trị là date trước date đã cho.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Before or equal (Date)
Trường được xác thực phải có giá trị là date trước hoặc bằng date đã cho.
Between
Với chuỗi:
Với số cần lưu ý một chút, ta cần phải thêm rule number để xác thực là số trước khi rule between được kiểm tra.
Boolean
Trường được xác định phải ở dạng boolean, có thể chấp nhận true, false, 1, 0, "1" và "0".

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Confirmed
Trường foo được xác thực phải khớp với trường foo_confirmation. Chẳng hạn bạn muốn xác thực trường password với rule confirmed, trường password_confirmation phù hợp (khớp với trường password) phải có mặt trong request.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Different
Trường được xác thực phải có giá trị khác với trường đã cho.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Dimensions

Trường được xác thực phải là một ảnh và đáp ứng các ràng buộc về kích thước được chỉ định bởi các tham số của rule.
Validation rule: Có tất cả 7 loại tham số:
min_widthmin_heightmax_widthmax_heightratio: giá trị tỉ lệ = chiều rộng / chiều cao hoặc bằng số float nào đówidthheight
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Email
Trường được xác thực phải là một địa chỉ email. Trong giới hạn, rule này sử dụng gói egulias/email-vaidator để validate email. Trong đó có các validator như:
rfc:RFCValidatorstrict:NoRFCWarningsValidationspoof:SpoofCheckValidationdns:DNSCheckValidationfilter:FilterEmailValidation
Mặc định Laravel sử dụng validator rfc để validate. Với validator filter, nó sử dụng method filter_var để validate.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Ends with
Trường được xác thực phải kết thúc bằng một trong các giá trị đã cho.

C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
Exists (Database)
Trường được xác thực phải chứa giá trị tồn tại trong cột của database table. Thường dùng để kiểm tra xem ID có tồn tại trước khi thực hiện sửa hoặc xóa...

Nếu column không được chỉ định thì sẽ tự động lấy tên của trường đển gán cho column.
Trường hợp khai báo column:
Nếu ứng dụng của bạn sử dụng nhiều database connection, có thể sử dụng ký hiệu . để tham chiếu theo ý muốn.
Mặc định thì rule này sẽ sử dụng câu truy vấn:
Nếu bạn muốn thay đổi thiết lập này, bạn có thể sử dụng method Rule::exists:
Ta có thể sử dụng global helper request để lấy dữ liệu từ input id.
File
Trường được xác thực phải là tệp đã upload thành công.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\app\Models\File.php
C:\xampp8\htdocs\plugindev\database\migrations\2023_02_05_050941_create_files_table.php

C:\xampp8\htdocs\plugindev\database\migrations\2023_02_05_050941_create_files_table.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Greater than
Trường được xác thực phải lớn hơn trường đã cho. Hai trường phải cùng loại dữ liệu, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule between.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Greater than or equal
Trường được xác thực phải lớn hơn hoặc bằng trường đã cho. Hai trường phải cùng loại dữ liệu, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule between.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Less than
Trường được xác thực phải nhỏ hơn trường đã cho. Hai trường phải cùng loại dữ liệu, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule
Less than or equal
Trường được xác thực phải nhỏ hơn hoặc bằng trường đã cho. Hai trường phải cùng loại dữ liệu, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule between.
Min
rường được xác thực phải lớn hơn hoặc bằng giá trị lớn nhất cho trước, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule between.
Max
Trường được xác thực phải nhỏ hơn hoặc bằng giá trị lớn nhất cho trước, bao gồm: chuỗi, số, mảng và file. Về quy ước so sánh tương tự như rule between.
Image
Trường được xác thực phải là tệp ảnh, bao gồm các định dạng: jpeg, png, bmp, gif, svg, hoặc webp.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
IP address
Trường được xác thực phải là một phần tử nằm trong mảng đã cho.
Trường được xác thực phải một địa chỉ IP. Bao gồm các loại:
ip: Địa chỉ IPipv4: Địa chỉ IPv4ipv6: Địa chỉ IPv6

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
String json
Trường được xác thực phải là một chuỗi JSON hợp lệ.

C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
MIME types (Nó không hoạt động 1 mình mà kết hợp với Extension (File)
File được xác thực phải khớp với một trong các MIME đã cho. Để xác thực được MIME của file, nội dung file sẽ được đọc và framework sẽ dự đoán loại MIME, điều này có thể khác với loại MIME cho người dùng cung cấp.
Extension (File)
File được xác thực phải khớp với một trong các định dạng mở rộng đã cho. Rule này sẽ xác thực MIME trước thông qua đọc nội dụng file và đoán rồi mới xác thực định dạng mở rộng. Có thể nói đây là một rule mở rộng của mimetypes. Bạn có thể tham khảo một số các MIME tại
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Thêm mở rộng C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
Regex
Trường được xác thực phải khớp với regular expression đã cho. Rule này bản chất sử dụng hàm preg_match trong PHP, do đó cần chú ý đến các ký tự của chuỗi pattern.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Not regex
Trường được xác thực không được khớp với regular expression đã cho. Rule này bản chất sử dụng hàm preg_match trong PHP, do đó cần chú ý đến các ký tự của chuỗi pattern.

C:\xampp8\htdocs\plugindev\routes\web.php
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Nullable
Trường được xác thực có thể nhận giá trị null, nếu không thì phải tuân thủ các validation rule còn lại.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Present
Trường được xác thực phải có mặt trong request nhưng có thể trống.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Required gần giống với Present
Trường được xác thực phải có mặt trong request và không được trống. Một trường được coi là trống nếu rơi vào các trường hợp sau:
Giá trị là
null.Giá trị là mội chuỗi trống.
Giá trị là một mảng trống hoặc object
Countabletrống (sẽ tìm hiểu ở các tập sau).Giá trị là một file đã upload nhưng không tìm thấy đường dẫn.
C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Required if
Trường được xác thực phải có mặt trong request và không được trống nếu như một trường khác có giá trị bằng giá trị đã cho.
Ngoài ra bạn cũng có thể sử dụng method Rule::requiredIf để linh hoạt hơn. Method này chấp nhận giá trị boolean hoặc một Closure object trả về gía trị boolean. Nếu là true thì validation rule này sẽ được thực thi.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Required unless
Trường được xác thực phải có mặt trong request và không được trống trừ khi một trường khác có giá trị bằng giá trị đã cho.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Required with
Trường được xác thực phải có mặt trong request và không được trống trừ nếu một trong các trường liệt kê có mặt trong request.

C:\xampp8\htdocs\plugindev\app\Http\Controllers\PostController.php
C:\xampp8\htdocs\plugindev\resources\views\posts\create.blade.php
Required with all
Trường được xác thực phải có mặt trong request và không được trống trừ nếu tất cả các trường liệt kê có mặt trong request.

Last updated
Was this helpful?