Làm cách nào để bạn xác thực các giá trị được phân tách bằng dấu phẩy trong laravel?
Hy vọng rằng điều này sẽ giúp Show thông tin. lưỡi. php
hoặc
Bạn có thể chuyển đổi cái này sang sử dụng mẫu lưỡi Laravel Laravel cung cấp một cơ sở đơ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 6Ví dụ xác thực cơ bản
Đối số đầu tiên được truyền cho phương thức 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ệuSử dụng mảng để chỉ định quy tắcNhiề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
Xác thực nhiều trường
Khi một phiên bản 8 đã được tạo, phương pháp 9 (hoặc 0) có thể được sử dụng để thực hiện xác thực
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
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 1 3Xác thực tập tinLớp 8 cung cấp một số quy tắc để xác thực tệp, chẳng hạn như 3, 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ìnhLàm việc với thông báo lỗiSau khi gọi phương thức 5 trên phiên bản 8, bạn sẽ nhận được phiên bản 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ỗiTruy xuất thông báo lỗi đầu tiên cho một trường 0Truy xuất tất cả các thông báo lỗi cho một trường 1Truy xuất tất cả các thông báo lỗi cho tất cả các trường 2Xác định xem có tồn tại thông báo cho một trường hay không 3Truy xuất thông báo lỗi với định dạng 0
Truy xuất tất cả các thông báo lỗi với định dạng 1Thông báo Lỗi & Chế độ xemKhi 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ụ 2Lưu ý rằng khi xác thực không thành công, chúng tôi chuyển phiên bản 8 sang Chuyển hướng bằng phương pháp 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 theoTuy 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 30 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 30 luôn được xác định và có thể được sử dụng một cách an toàn. Biến 30 sẽ là một thể hiện của 7Vì vậy, sau khi chuyển hướng, bạn có thể sử dụng biến 30 bị ràng buộc tự động trong chế độ xem của mình 3Túi lỗi được đặt tênNếu bạn có nhiều biểu mẫu trên một trang, bạn có thể đặt tên cho 97 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 9 4Sau đó, bạn có thể truy cập phiên bản 7 có tên từ biến 30 5Quy tắc xác thực có sẵnDướ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ậnTrườ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_urlTrường được xác thực phải là một URL hợp lệ theo chức năng PHP 39sau đó. ngày thángTrườ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 00chữ cáiTrường được xác thực phải hoàn toàn là ký tự chữ cái alpha_dashTrườ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_numTrường được xác thực phải hoàn toàn là ký tự chữ và số mảngTrường được xác thực phải thuộc loại mảng trước. ngày thángTrườ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 00ở giữa. nhỏ nhất lớn nhấtTrườ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 3booleanTrườ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à 03, 04, 05, 06, 07 và 08đã xác nhậnTrường được xác thực phải có trường phù hợp là 09. Ví dụ: nếu trường được xác thực là 10, thì trường 11 phù hợp phải có trong thông tin đầu vàongày thángTrường được xác thực phải là một ngày hợp lệ theo hàm 00 PHPĐịnh dạng ngày tháng. định dạngTrường được xác thực phải phù hợp với định dạng được xác định theo hàm PHP PHP213 khác biệt. cánh đồngTrườ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ấtTrường được xác thực phải có độ dài giữa tối thiểu và tối đa đã cho 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ộtTrườ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ạiChỉ định tên cột tùy chỉnh 6Bạ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 7Chuyển 14 dưới dạng giá trị mệnh đề "where" sẽ thêm kiểm tra cho giá trị cơ sở dữ liệu 14 8hình ảnhTệ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ênTrường được xác thực phải có giá trị số nguyên ipTrườ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 3kị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 9tố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 3not_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ẫuTrườ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 18, có thể cần phải chỉ định các quy tắc trong một mảng thay vì sử dụng 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 ngangcần thiếtTrườ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 như nhau. cánh đồngTrườ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 19duy nhất. bảng,cột,ngoại trừ,idColumnTrườ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 20 không được chỉ định, tên trường sẽ được sử dụngCách sử dụng cơ bản của quy tắc duy nhấtChỉ định tên cột tùy chỉnh 0Buộc một quy tắc duy nhất bỏ qua một ID đã cho 1Thêm mệnh đề bổ sungBạ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 2Trong quy tắc trên, chỉ những hàng có 21 của 05 mới được đưa vào kiểm tra duy nhấturlTrường được xác thực phải được định dạng dưới dạng URL
Thêm quy tắc có điều kiệnTrong 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 24 vào danh sách quy tắc của bạn 3Trong ví dụ trên, trường 25 sẽ chỉ được xác thực nếu nó có trong mảng 26Xá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 8 với các quy tắc tĩnh không bao giờ thay đổi của bạn 4Giả 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 24 trên trường hợp 8 5Đối số đầu tiên được truyền cho phương thức 24 là tên của trường 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 31 được thông qua khi đối số thứ ba trả về 03, 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 6
Thông báo lỗi tùy chỉnhNế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 7
Trình giữ chỗ xác thực khác 8Chỉ đị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ể 9Chỉ đị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 thông báo 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 8. Để làm như vậy, hãy thêm tin nhắn của bạn vào mảng 38 trong tệp ngôn ngữ 39 0Quy tắc xác thực tùy chỉnhĐăng ký quy tắc xác thực tùy chỉnhLaravel 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 00 1Trình xác thực tùy chỉnh Đóng nhận ba đối số. tên của 01 đang được xác thực, 02 của thuộc tính và một mảng 03 được truyền cho quy tắcBạn cũng có thể truyền một lớp và phương thức cho phương thức 04 thay vì một ClosureLư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ựcThay 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 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 06 2Đăng ký Trình giải quyết trình xác thực tùy chỉnhTiế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 3Khi 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 07 vào trình xác thực 4Nế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 8, bạn có thể sử dụng phương thức 09 |