Xác thực phạm vi ngày trong Laravel

Laravel cung cấp một tiện ích đơn giản, thuận tiện để xác thực dữ liệu và truy xuất thông báo lỗi xác thực thông qua lớp

// The given data did not pass validation

6

Ví dụ xác thực cơ bản

$validator = Validator::make[

array['name' => 'required|min:5']

Đối số đầu tiên được truyền cho phương thức

// The given data did not pass validation

7 là dữ liệu đang được xác thực. Đối số thứ hai là các quy tắc xác thực sẽ được áp dụng cho dữ liệu

Sử dụng mảng để chỉ định quy tắc

Nhiều quy tắc có thể được phân tách bằng cách sử dụng ký tự "ống" hoặc dưới dạng các phần tử riêng biệt của một mảng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

Xác thực nhiều trường

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

Khi một phiên bản

// The given data did not pass validation

8 đã được tạo, phương pháp

// The given data did not pass validation

9 [hoặc

$messages = $validator->messages[];

0] có thể được sử dụng để thực hiện xác thực

// The given data did not pass validation

Nếu xác thực không thành công, bạn có thể truy xuất thông báo lỗi từ trình xác thực

$messages = $validator->messages[];

Bạn cũng có thể truy cập vào một loạt các quy tắc xác thực không thành công mà không cần thông báo. Để làm như vậy, hãy sử dụng phương pháp

$messages = $validator->messages[];

1

$validator = Validator::make[

array['name' => 'required|min:5']

1

Xác thực tập tin

Lớp

// The given data did not pass validation

8 cung cấp một số quy tắc để xác thực tệp, chẳng hạn như

$messages = $validator->messages[];

3,

$messages = $validator->messages[];

4 và các quy tắc khác. Khi xác thực tệp, bạn có thể chỉ cần chuyển chúng vào trình xác thực cùng với dữ liệu khác của mình

Làm việc với thông báo lỗi

Sau khi gọi phương thức

$messages = $validator->messages[];

5 trên phiên bản

// The given data did not pass validation

8, bạn sẽ nhận được phiên bản

$messages = $validator->messages[];

7, phiên bản này có nhiều phương thức thuận tiện để làm việc với các thông báo lỗi

Truy xuất thông báo lỗi đầu tiên cho một trường

$validator = Validator::make[

array['name' => 'required|min:5']

8

Truy xuất tất cả các thông báo lỗi cho một trường

$validator = Validator::make[

array['name' => 'required|min:5']

9

Truy xuất tất cả các thông báo lỗi cho tất cả các trường

// The given data did not pass validation

0

Xác định xem có tồn tại thông báo cho một trường hay không

// The given data did not pass validation

1

Truy xuất thông báo lỗi với định dạng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

0

Ghi chú. Theo mặc định, thư được định dạng bằng cú pháp tương thích với Bootstrap

Truy xuất tất cả các thông báo lỗi với định dạng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

1

Thông báo Lỗi & Chế độ xem

Khi bạn đã thực hiện xác thực, bạn sẽ cần một cách dễ dàng để đưa thông báo lỗi trở lại chế độ xem của mình. Điều này được xử lý thuận tiện bởi Laravel. Hãy xem xét các tuyến đường sau đây làm ví dụ

$validator = Validator::make[

array['name' => array['required', 'min:5']]

2

Lưu ý rằng khi xác thực không thành công, chúng tôi chuyển phiên bản

// The given data did not pass validation

8 sang Chuyển hướng bằng phương pháp

$messages = $validator->messages[];

9. Phương pháp này sẽ flash các thông báo lỗi vào phiên để chúng có sẵn trong yêu cầu tiếp theo

Tuy nhiên, lưu ý rằng chúng tôi không phải liên kết rõ ràng các thông báo lỗi với chế độ xem trong lộ trình GET của chúng tôi. Điều này là do Laravel sẽ luôn kiểm tra lỗi trong dữ liệu phiên và tự động liên kết chúng với chế độ xem nếu chúng khả dụng. Vì vậy, điều quan trọng cần lưu ý là một biến

$validator = Validator::make[

array['name' => 'required|min:5']

10 sẽ luôn có sẵn trong tất cả các chế độ xem của bạn, theo mọi yêu cầu, cho phép bạn giả định một cách thuận tiện rằng biến

$validator = Validator::make[

array['name' => 'required|min:5']

10 luôn được xác định và có thể được sử dụng một cách an toàn. Biến

$validator = Validator::make[

array['name' => 'required|min:5']

10 sẽ là một thể hiện của

$messages = $validator->messages[];

7

Vì vậy, sau khi chuyển hướng, bạn có thể sử dụng biến

$validator = Validator::make[

array['name' => 'required|min:5']

10 bị ràng buộc tự động trong chế độ xem của mình

$validator = Validator::make[

array['name' => array['required', 'min:5']]

3

Túi lỗi được đặt tên

Nếu bạn có nhiều biểu mẫu trên một trang, bạn có thể đặt tên cho

$messages = $validator->messages[];

7 lỗi. Điều này sẽ cho phép bạn truy xuất các thông báo lỗi cho một biểu mẫu cụ thể. Chỉ cần chuyển một tên làm đối số thứ hai cho

$messages = $validator->messages[];

9

$validator = Validator::make[

array['name' => array['required', 'min:5']]

4

Sau đó, bạn có thể truy cập phiên bản

$messages = $validator->messages[];

7 có tên từ biến

$validator = Validator::make[

array['name' => 'required|min:5']

10

$validator = Validator::make[

array['name' => array['required', 'min:5']]

5

Quy tắc xác thực có sẵn

Dưới đây là danh sách tất cả các quy tắc xác thực có sẵn và chức năng của chúng

Đã được chấp nhận

Trường được xác thực phải là có, bật hoặc 1. Điều này hữu ích để xác thực việc chấp nhận "Điều khoản dịch vụ"

active_url

Trường được xác thực phải là một URL hợp lệ theo hàm PHP

$validator = Validator::make[

array['name' => 'required|min:5']

19

sau đó. ngày

Trường được xác thực phải là một giá trị sau một ngày nhất định. Ngày tháng sẽ được chuyển vào hàm PHP

$validator = Validator::make[

array['name' => 'required|min:5']

80

chữ cái

Trường được xác thực phải hoàn toàn là ký tự chữ cái

alpha_dash

Trường được xác thực có thể có các ký tự chữ và số, cũng như dấu gạch ngang và dấu gạch dưới

alpha_num

Trường được xác thực phải hoàn toàn là ký tự chữ và số

mảng

Trường được xác thực phải thuộc loại mảng

trước. ngày

Trường được xác thực phải là một giá trị trước ngày đã cho. Ngày tháng sẽ được chuyển vào hàm PHP

$validator = Validator::make[

array['name' => 'required|min:5']

80

giữa. nhỏ nhất lớn nhất

Trường được xác thực phải có kích thước nằm trong khoảng từ tối thiểu đến tối đa đã cho. Chuỗi, số và tệp được đánh giá theo cách tương tự như quy tắc

$messages = $validator->messages[];

3

boolean

Trường được xác thực phải có thể được truyền dưới dạng boolean. Đầu vào được chấp nhận là

$validator = Validator::make[

array['name' => 'required|min:5']

83,

$validator = Validator::make[

array['name' => 'required|min:5']

84,

$validator = Validator::make[

array['name' => 'required|min:5']

85,

$validator = Validator::make[

array['name' => 'required|min:5']

86,

$validator = Validator::make[

array['name' => 'required|min:5']

87 và

$validator = Validator::make[

array['name' => 'required|min:5']

88

đã xác nhận

Trường được xác thực phải có trường phù hợp là

$validator = Validator::make[

array['name' => 'required|min:5']

89. Ví dụ: nếu trường được xác thực là

$validator = Validator::make[

array['name' => 'required|min:5']

90, thì trường

$validator = Validator::make[

array['name' => 'required|min:5']

91 phù hợp phải có trong thông tin đầu vào

ngày

Trường được xác thực phải là một ngày hợp lệ theo chức năng PHP

$validator = Validator::make[

array['name' => 'required|min:5']

80

Định dạng ngày tháng. định dạng

Trường được xác thực phải khớp với định dạng được xác định theo hàm PHP

$validator = Validator::make[

array['name' => 'required|min:5']

93

khác nhau. đồng ruộng

Trường đã cho phải khác với trường được xác thực

chữ số. giá trị

Trường được xác thực phải là số và phải có độ dài giá trị chính xác

chữ số_giữa. nhỏ nhất lớn nhất

Trường được xác thực phải có độ dài giữa tối thiểu và tối đa đã cho

e-mail

Trường được xác thực phải được định dạng dưới dạng địa chỉ email

tồn tại. bảng, cột

Trường được xác thực phải tồn tại trên một bảng cơ sở dữ liệu nhất định

Cách sử dụng cơ bản của quy tắc tồn tại

Chỉ định tên cột tùy chỉnh

$validator = Validator::make[

array['name' => array['required', 'min:5']]

6

Bạn cũng có thể chỉ định thêm các điều kiện sẽ được thêm dưới dạng mệnh đề "where" vào truy vấn

$validator = Validator::make[

array['name' => array['required', 'min:5']]

7

Chuyển

$validator = Validator::make[

array['name' => 'required|min:5']

94 dưới dạng giá trị mệnh đề "where" sẽ thêm kiểm tra cho giá trị cơ sở dữ liệu

$validator = Validator::make[

array['name' => 'required|min:5']

94

$validator = Validator::make[

array['name' => array['required', 'min:5']]

8

hình ảnh

Tệp được xác thực phải là hình ảnh [jpeg, png, bmp hoặc gif]

Trong. thực phẩm, thanh,

Trường được xác thực phải được bao gồm trong danh sách giá trị đã cho

số nguyên

Trường được xác thực phải có giá trị số nguyên

ip

Trường được xác thực phải được định dạng dưới dạng địa chỉ IP

tối đa. giá trị

Trường được xác thực phải nhỏ hơn hoặc bằng giá trị tối đa. Chuỗi, số và tệp được đánh giá theo cách tương tự như quy tắc

$messages = $validator->messages[];

3

kịch câm. thực phẩm, thanh,

Tệp đang được xác thực phải có loại MIME tương ứng với một trong các tiện ích mở rộng được liệt kê

Cách sử dụng cơ bản của quy tắc MIME

$validator = Validator::make[

array['name' => array['required', 'min:5']]

9

tối thiểu. giá trị

Trường được xác thực phải có giá trị tối thiểu. Chuỗi, số và tệp được đánh giá theo cách tương tự như quy tắc

$messages = $validator->messages[];

3

not_in. thực phẩm, thanh,

Trường được xác thực không được bao gồm trong danh sách giá trị đã cho

con số

Trường được xác thực phải có một giá trị số

biểu thức chính quy. mẫu

Trường được xác thực phải khớp với biểu thức chính quy đã cho

Ghi chú. Khi sử dụng mẫu

$validator = Validator::make[

array['name' => 'required|min:5']

98, có thể cần phải chỉ định các quy tắc trong một mảng thay vì sử dụng các dấu phân cách dấu gạch ngang, đặc biệt nếu biểu thức chính quy chứa ký tự dấu gạch ngang

yêu cầu

Trường được xác thực phải có trong dữ liệu đầu vào

bắt buộc_if. trường, giá trị,

Trường được xác thực phải có mặt nếu trường trường bằng bất kỳ giá trị nào

bắt buộc_với. thực phẩm, thanh,

Trường được xác thực chỉ phải xuất hiện nếu có bất kỳ trường nào được chỉ định khác

required_with_all. thực phẩm, thanh,

Trường được xác thực chỉ phải có mặt nếu tất cả các trường được chỉ định khác đều có mặt

bắt buộc_không. thực phẩm, thanh,

Trường được xác thực chỉ phải xuất hiện khi không có bất kỳ trường nào được chỉ định khác

bắt buộc_không_có_tất_cả. thực phẩm, thanh,

Trường được xác thực chỉ phải xuất hiện khi tất cả các trường được chỉ định khác không xuất hiện

tương tự. đồng ruộng

Trường đã cho phải khớp với trường đang được xác thực

kích thước. giá trị

Trường được xác thực phải có kích thước khớp với giá trị đã cho. Đối với dữ liệu chuỗi, giá trị tương ứng với số ký tự. Đối với dữ liệu số, giá trị tương ứng với một giá trị số nguyên nhất định. Đối với tệp, kích thước tương ứng với kích thước tệp tính bằng kilobyte

chuỗi. giá trị

Trường được xác thực phải là một loại chuỗi

Múi giờ

Trường được xác thực phải là mã định danh múi giờ hợp lệ theo hàm PHP

$validator = Validator::make[

array['name' => 'required|min:5']

99

độc nhất. bảng,cột,ngoại trừ,idColumn

Trường được xác thực phải là duy nhất trên một bảng cơ sở dữ liệu nhất định. Nếu tùy chọn

// The given data did not pass validation

00 không được chỉ định, tên trường sẽ được sử dụng

Cách sử dụng cơ bản của quy tắc duy nhất

Chỉ định tên cột tùy chỉnh

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

0

Buộc một quy tắc duy nhất bỏ qua một ID đã cho

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

1

Thêm mệnh đề bổ sung

Bạn cũng có thể chỉ định thêm các điều kiện sẽ được thêm dưới dạng mệnh đề "where" vào truy vấn

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

2

Trong quy tắc trên, chỉ những hàng có

// The given data did not pass validation

01 trên 185 mới được đưa vào kiểm tra duy nhất

url

Trường được xác thực phải được định dạng dưới dạng URL

Ghi chú. Hàm này sử dụng phương thức

// The given data did not pass validation

03 của PHP

Thêm quy tắc có điều kiện

Trong một số trường hợp, bạn có thể muốn chạy kiểm tra xác thực đối với một trường chỉ khi trường đó có trong mảng đầu vào. Để nhanh chóng hoàn thành việc này, hãy thêm quy tắc

// The given data did not pass validation

04 vào danh sách quy tắc của bạn

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

3

Trong ví dụ trên, trường

// The given data did not pass validation

05 sẽ chỉ được xác thực nếu nó có trong mảng

// The given data did not pass validation

06

Xác thực có điều kiện phức tạp

Đôi khi bạn có thể chỉ muốn yêu cầu một trường nhất định nếu trường khác có giá trị lớn hơn 100. Hoặc bạn có thể cần hai trường để chỉ có một giá trị nhất định khi có trường khác. Thêm các quy tắc xác thực này không phải là một điều khó khăn. Đầu tiên, tạo một phiên bản

// The given data did not pass validation

8 với các quy tắc tĩnh không bao giờ thay đổi của bạn

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

4

Giả sử ứng dụng web của chúng tôi dành cho người sưu tầm trò chơi. Nếu một nhà sưu tập trò chơi đăng ký với ứng dụng của chúng tôi và họ sở hữu hơn 100 trò chơi, chúng tôi muốn họ giải thích lý do tại sao họ sở hữu nhiều trò chơi như vậy. Ví dụ: có lẽ họ điều hành một cửa hàng bán lại trò chơi hoặc có thể họ chỉ thích sưu tầm. Để thêm yêu cầu này một cách có điều kiện, chúng ta có thể sử dụng phương thức

// The given data did not pass validation

04 trên trường hợp

// The given data did not pass validation

8

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

5

Đối số đầu tiên được truyền cho phương thức

// The given data did not pass validation

04 là tên của trường mà chúng tôi đang xác thực có điều kiện. Đối số thứ hai là các quy tắc chúng tôi muốn thêm. Nếu

// The given data did not pass validation

11 được thông qua khi đối số thứ ba trả về

$validator = Validator::make[

array['name' => 'required|min:5']

83, các quy tắc sẽ được thêm vào. Phương pháp này giúp dễ dàng xây dựng các xác thực có điều kiện phức tạp. Bạn thậm chí có thể thêm xác thực có điều kiện cho một số trường cùng một lúc

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

6

Ghi chú. Tham số

// The given data did not pass validation

13 được truyền cho

// The given data did not pass validation

11 của bạn sẽ là một phiên bản của

// The given data did not pass validation

15 và có thể được sử dụng làm đối tượng để truy cập đầu vào và tệp của bạn

Thông báo lỗi tùy chỉnh

Nếu cần, bạn có thể sử dụng thông báo lỗi tùy chỉnh để xác thực thay vì mặc định. Có một số cách để chỉ định thông báo tùy chỉnh

Truyền tin nhắn tùy chỉnh vào Trình xác thực

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

7

Ghi chú. Trình giữ chỗ

// The given data did not pass validation

16 sẽ được thay thế bằng tên thực của trường được xác thực. Bạn cũng có thể sử dụng các trình giữ chỗ khác trong thông báo xác thực

Trình giữ chỗ xác thực khác

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

8

Chỉ định một thông báo tùy chỉnh cho một thuộc tính nhất định

Đôi khi bạn có thể muốn chỉ định một thông báo lỗi tùy chỉnh chỉ cho một trường cụ thể

$validator = Validator::make[

'password' => 'lamepassword',

'password' => 'required|min:8',

'email' => 'required|email|unique:users'

9

Chỉ định tin nhắn tùy chỉnh trong tệp ngôn ngữ

Trong một số trường hợp, bạn có thể muốn chỉ định các tin nhắn tùy chỉnh của mình trong một tệp ngôn ngữ thay vì chuyển chúng trực tiếp tới

// The given data did not pass validation

8. Để làm như vậy, hãy thêm tin nhắn của bạn vào mảng

// The given data did not pass validation

18 trong tệp ngôn ngữ

// The given data did not pass validation

19

// The given data did not pass validation

0

Quy tắc xác thực tùy chỉnh

Đăng ký quy tắc xác thực tùy chỉnh

Laravel cung cấp nhiều quy tắc xác thực hữu ích; . Một phương pháp đăng ký quy tắc xác thực tùy chỉnh là sử dụng phương pháp

$validator = Validator::make[

array['name' => array['required', 'min:5']]

00

// The given data did not pass validation

1

Trình xác thực tùy chỉnh Đóng nhận ba đối số. tên của

$validator = Validator::make[

array['name' => array['required', 'min:5']]

01 đang được xác thực,

$validator = Validator::make[

array['name' => array['required', 'min:5']]

02 của thuộc tính và một mảng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

03 được truyền cho quy tắc

Bạn cũng có thể truyền một lớp và phương thức cho phương thức

$validator = Validator::make[

array['name' => array['required', 'min:5']]

04 thay vì một Closure

Lưu ý rằng bạn cũng sẽ cần xác định thông báo lỗi cho các quy tắc tùy chỉnh của mình. Bạn có thể làm như vậy bằng cách sử dụng mảng thông báo tùy chỉnh nội tuyến hoặc bằng cách thêm mục nhập vào tệp ngôn ngữ xác thực

Mở rộng Lớp Trình xác thực

Thay vì sử dụng lệnh gọi lại Đóng để mở rộng Trình xác thực, bạn cũng có thể mở rộng chính lớp Trình xác thực. Để làm như vậy, hãy viết một lớp Trình xác thực mở rộng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

05. Bạn có thể thêm các phương thức xác thực vào lớp bằng cách đặt tiền tố cho chúng bằng

$validator = Validator::make[

array['name' => array['required', 'min:5']]

06

// The given data did not pass validation

2

Đăng ký Trình giải quyết trình xác thực tùy chỉnh

Tiếp theo, bạn cần đăng ký tiện ích mở rộng Trình xác thực tùy chỉnh của mình

// The given data did not pass validation

3

Khi tạo quy tắc xác thực tùy chỉnh, đôi khi bạn có thể cần xác định thay thế trình giữ chỗ tùy chỉnh cho thông báo lỗi. Bạn có thể làm như vậy bằng cách tạo Trình xác thực tùy chỉnh như được mô tả ở trên và thêm hàm

$validator = Validator::make[

array['name' => array['required', 'min:5']]

07 vào trình xác thực

// The given data did not pass validation

4

Nếu bạn muốn thêm một thông báo tùy chỉnh "người thay thế" mà không mở rộng lớp

// The given data did not pass validation

8, bạn có thể sử dụng phương thức

$validator = Validator::make[

array['name' => array['required', 'min:5']]

09

Làm cách nào để xác thực ngày bắt đầu và ngày kết thúc trong Laravel?

Cần kiểm tra from_date nhỏ hơn end_date. $rules = mảng['from_date' => mảng['đôi khi','date_format. "Y-m-d"', 'trước. '. Đầu vào. get['to_date'] ], 'to_date' => mảng['đôi khi','date_format. "Y-m-d"', 'sau. '. Đầu vào. get['from_date'] ] ];

Xác thực mảng có phải là Laravel không?

May mắn thay, Laravel cung cấp một cách đơn giản để xác thực mảng và đầu vào mảng lồng nhau bằng cách sử dụng ký hiệu dấu chấm và ký tự * . Ký tự * thay thế số lần lặp của phần tử trong mảng. Nó cũng khá hữu ích khi chúng ta có nhiều tổ hợp phức tạp hơn đang diễn ra.

Có bao nhiêu loại xác thực trong Laravel?

Mỗi yêu cầu biểu mẫu được tạo bởi Laravel có hai phương thức. ủy quyền và quy tắc .

Ví dụ về trình xác thực được sử dụng trong Laravel như thế nào?

Xác nhận là khía cạnh quan trọng nhất trong khi thiết kế một ứng dụng. Nó xác nhận dữ liệu đến. Theo mặc định, lớp trình điều khiển cơ sở sử dụng đặc điểm ValidatesRequests cung cấp một phương thức thuận tiện để xác thực các yêu cầu HTTP đến bằng nhiều quy tắc xác thực mạnh mẽ

Chủ Đề