Laravel 12 : Validate,Validator trong laravel

0
344

Validation là gì?

Khi làm việc với bất kì ngôn ngữ lập trình nào thì việc kiểm tra tính hợp lệ của các dữ liệu input là điều không thể thiếu, đặc biệt khi dữ liệu input đến từ phía người sử dụng thông qua các dạng form. Bài viết này sẽ giới thiệu cho bạn về giải pháp mà Laravel cung cấp cho bạn để thực hiện công việc kiểm tra dữ liệu đầu vào này.

VD:

ta có trang login sau:

trước khi tác động đến database chúng ta lên kiểm tra dữ liệu có hợp lệ hay không trước khi tính đến việc tác động đến database. và công việc này là của validate

cách sử dụng

Route

LoginController

Function postlogin————–

email,pass : là name của ô input;

required,email,min,max..vv : là các rằng buộc mà ô input chứa các name : email và pass phải tuân thủ.

giá trị ô input có name=email: không được để trống, phải là email;

giá trị ô input có name=pass:không được để trống,ít nhất 5 ký tự, nhiều nhất 15 ký tự

Kết quả:khi ta không điền dữ liệu vào ô input sau đó nhấn submit:

Còn tại sao nó hiển thị tiếng anh thì xuống dưới nhé!

Các rằng buộc

Rules Chú Thích
Required Không được để trống ô dữ liệu.
Boolean Chỉ cho phép nhập vào các giá trị 0,1,true,false,’0′,’1′ .
confirmed Kiểm tra 2 input có trùng nhau không, input sau bắt buộc phải có tiền tố _confirmation. VD: password,password_confirmation.
dimensions  -Giới hạn chiều rộng chiều cao của ảnh. VD: ‘avatar’ => ‘dimensions:min_width=100,min_height=200’- Các thông số khác: min_widthmax_widthmin_heightmax_heightwidthheightratio.
email -Dữ liệu nhập vào phải là email.
file -Dữ liệu nhập vào phải là file.
image -Dữ liệu nhập vào phải là file ảnh(jpeg, png, bmp, gif, or svg).
in:foo,bar,.. -Dữ liệu nhập vào phải nằm trong list.
integer -Dữ liệu nhập vào phải là số nguyên.
json -Dữ liệu nhập vào phải là json
max:value -Độ dài lớn nhất của dữ liệu nhập vào. VD: max:255.
min:value -Độ dài nhỏ nhất của dữ liệu nhập vào. VD: min:5.
mimetypes:text/pain,… -Kiểu dữ liệu của file phải nằm trong list.VD: ‘video’ => ‘mimetypes:video/avi,video/mpeg,video/quicktime’
numeric -Dữ liệu nhập vào pải là số.
unique:table -Dữ liệu nhập vào phải là duy nhất trong bảng.VD: ‘username’=>’unique:users’.

-Ngoài ra các bạn có thể xem thêm tại: đây

Cấu trục của 1 validate cơ bản mình chỉ dùng (có nhiều cách nhưng mình hướng dẫn các bạn cách nhanh nhất)

$request->validate($rules,$message)

trong đó :

$rules là 1 mảng chứa các quy tắc mà giá trị của ô input người dùng nhập phải tuân theo.

VD:

Chú ý: nều ta không truyền $message thì lỗi sẽ được thể hiện bằng tiếng anh nhé!

$message : lời thông báo khi 1 trong số các quy tắc không đúng.

Kết quả nếu chúng ta để validate có message

Thay đổi 1 chút controller nhé:

Kết quả :

OK vậy là validate được r. nhưng làm sao để hiển thị được lỗi như trên hình khi chúng ta submit thì mọi người xem Bài tiếp theo  nhé!.

Tổng kết:

Mình vừa giới thiệu cho mọi người cách sử dụng validate trong controller. trong những dự án thực tế người ta sẽ không để validate trong controller mà sẽ đưa vào FormResquest . giúp code của mình sạch và tách bạch hơn. cái đó mình sẽ giới thiệu trọng bào sau nhé!

Chúc mọi người học tập tốt!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây