Laravel cung cấp một số cách tiếp cận khác nhau để xác thực dữ liệu đến của ứng dụng của bạn. Theo mặc định, lớp bộ điều khiển cơ sở của Laravel sử dụng một đặc điểm
8 cung cấp một phương pháp thuận tiện để xác thực yêu cầu HTTP đến với nhiều quy tắc xác thực mạnh mẽ
@foreach [$errors->all[] as $error]
Bắt đầu nhanh xác thực
Để tìm hiểu về các tính năng xác thực mạnh mẽ của Laravel, hãy xem một ví dụ hoàn chỉnh về xác thực biểu mẫu và hiển thị lại thông báo lỗi cho người dùng
Xác định các tuyến đường
Đầu tiên, giả sử chúng ta có các tuyến đường sau được xác định trong tệp
9 của mình
@foreach [$errors->all[] as $error]
// Display a form to create a blog post...
// Store a new blog post...
Tất nhiên, route
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
0 sẽ hiển thị một biểu mẫu để người dùng tạo một bài đăng blog mới, trong khi route namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
1 sẽ lưu trữ bài đăng blog mới trong cơ sở dữ liệuTạo bộ điều khiển
Tiếp theo, chúng ta hãy xem xét một bộ điều khiển đơn giản xử lý các tuyến đường này. Bây giờ chúng ta sẽ để trống phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
2namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
Viết logic xác thực
Bây giờ chúng ta đã sẵn sàng để điền logic vào phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
2 của mình để xác thực bài đăng blog mới. Nếu bạn kiểm tra lớp bộ điều khiển cơ sở [namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
4] của ứng dụng, bạn sẽ thấy rằng lớp này sử dụng một đặc điểm 8. Đặc điểm này cung cấp một phương pháp
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6 thuận tiện trong tất cả các bộ điều khiển của bạnPhương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6 chấp nhận yêu cầu HTTP đến và một bộ quy tắc xác thực. Nếu các quy tắc xác thực vượt qua, mã của bạn sẽ tiếp tục thực thi bình thường; . Trong trường hợp yêu cầu HTTP truyền thống, phản hồi chuyển hướng sẽ được tạo, trong khi phản hồi JSON sẽ được gửi cho yêu cầu AJAXĐể hiểu rõ hơn về phương pháp
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6, hãy quay lại phương pháp namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
24
@foreach [$errors->all[] as $error]
Như bạn có thể thấy, chúng ta chỉ cần chuyển yêu cầu HTTP đến và các quy tắc xác thực mong muốn vào phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6. Một lần nữa, nếu xác thực không thành công, phản hồi thích hợp sẽ tự động được tạo. Nếu vượt qua xác thực, bộ điều khiển của chúng tôi sẽ tiếp tục thực hiện bình thườngLưu ý về các thuộc tính lồng nhau
Nếu yêu cầu HTTP của bạn chứa các tham số "lồng nhau", bạn có thể chỉ định chúng trong quy tắc xác thực của mình bằng cú pháp "dấu chấm"
6
@foreach [$errors->all[] as $error]
Hiển thị lỗi xác thực
Vì vậy, điều gì sẽ xảy ra nếu các tham số yêu cầu đến không vượt qua các quy tắc xác thực đã cho? . Ngoài ra, tất cả các lỗi xác thực sẽ tự động được đưa vào phiên
Một lần nữa, lưu ý rằng chúng tôi không phải ràng buộc rõ ràng các thông báo lỗi với chế độ xem trong tuyến đường
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
0 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 82 sẽ luôn có sẵn trong tất cả các chế độ xem của bạn đối với 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
@foreach [$errors->all[] as $error]
82 luôn được xác định và có thể được sử dụng một cách an toàn. Biến
@foreach [$errors->all[] as $error]
82 sẽ là một thể hiện của
@foreach [$errors->all[] as $error]
85. Để biết thêm thông tin về cách làm việc với đối tượng này, hãy xem tài liệu của nó
@foreach [$errors->all[] as $error]
Vì vậy, trong ví dụ của chúng tôi, người dùng sẽ được chuyển hướng đến phương thức
86 của bộ điều khiển của chúng tôi khi xác thực không thành công, cho phép chúng tôi hiển thị thông báo lỗi trong chế độ xem
@foreach [$errors->all[] as $error]
@foreach [$errors->all[] as $error]
Tùy chỉnh Định dạng Lỗi Flashed
Nếu bạn muốn tùy chỉnh định dạng của các lỗi xác thực được đưa vào phiên khi xác thực không thành công, hãy ghi đè lên
87 trên bộ điều khiển cơ sở của bạn. Đừng quên nhập lớp
@foreach [$errors->all[] as $error]
88 ở đầu tệp
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
Yêu cầu & Xác thực AJAX
Trong ví dụ này, chúng tôi đã sử dụng một biểu mẫu truyền thống để gửi dữ liệu đến ứng dụng. Tuy nhiên, nhiều ứng dụng sử dụng yêu cầu AJAX. Khi sử dụng phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6 trong một yêu cầu AJAX, Laravel sẽ không tạo phản hồi chuyển hướng. Thay vào đó, Laravel tạo một phản hồi JSON chứa tất cả các lỗi xác thực. Phản hồi JSON này sẽ được gửi cùng với mã trạng thái HTTP 422Các phương pháp xác thực khác
Tạo thủ công Trình xác thực
Nếu bạn không muốn sử dụng phương pháp
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6 của đặc điểm 8, bạn có thể tạo một phiên bản trình xác thực theo cách thủ công bằng cách sử dụng mặt tiền
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02. Phương thức namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
03 trên mặt tiền tạo một phiên bản trình xác thực mới8
@foreach [$errors->all[] as $error]
Đối số đầu tiên được truyền cho phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
03 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ệuSau khi kiểm tra xem yêu cầu có vượt qua được xác thực hay không, bạn có thể sử dụng phương pháp
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
05 để flash thông báo lỗi vào phiên. Khi sử dụng phương pháp này, biến 82 sẽ tự động được chia sẻ với chế độ xem của bạn sau khi chuyển hướng, cho phép bạn dễ dàng hiển thị lại cho người dùng. Phương thức
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
05 chấp nhận trình xác thực, namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
08 hoặc PHP namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
09Tú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 308 lỗi, 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 tên làm đối số thứ hai cho
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
05namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
0Sau đó, bạn có thể truy cập phiên bản
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
08 có tên từ biến 82
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
4Móc sau khi xác thực
Trình xác thực cũng cho phép bạn đính kèm các cuộc gọi lại để chạy sau khi hoàn tất xác thực. Điều này cho phép bạn dễ dàng thực hiện xác thực thêm và thậm chí thêm nhiều thông báo lỗi hơn vào bộ sưu tập thông báo. Để bắt đầu, hãy sử dụng phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
44 trên phiên bản trình xác thựcnamespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
6Xác nhận yêu cầu biểu mẫu
Đối với các tình huống xác thực phức tạp hơn, bạn có thể muốn tạo một "yêu cầu biểu mẫu". Yêu cầu biểu mẫu là các lớp yêu cầu tùy chỉnh có chứa logic xác thực. Để tạo một lớp yêu cầu biểu mẫu, hãy sử dụng lệnh
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
45 Artisan CLInamespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
0Lớp được tạo sẽ được đặt trong thư mục
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
46. Hãy thêm một vài quy tắc xác thực vào phương thức namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
47namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
1Vì vậy, các quy tắc xác nhận được đánh giá như thế nào? . Yêu cầu biểu mẫu đến được xác thực trước khi phương thức bộ điều khiển được gọi, nghĩa là bạn không cần phải làm lộn xộn bộ điều khiển của mình với bất kỳ logic xác thực nào
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
2Nếu xác thực không thành công, phản hồi chuyển hướng sẽ được tạo để đưa người dùng trở lại vị trí trước đó của họ. Các lỗi cũng sẽ được flash vào phiên để chúng có sẵn để hiển thị. Nếu yêu cầu là yêu cầu AJAX, phản hồi HTTP có mã trạng thái 422 sẽ được trả về cho người dùng bao gồm biểu diễn JSON của các lỗi xác thực
Yêu cầu biểu mẫu ủy quyền
Lớp yêu cầu biểu mẫu cũng chứa một phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
48. Trong phương pháp này, bạn có thể kiểm tra xem người dùng được xác thực có thực sự có quyền cập nhật một tài nguyên nhất định hay không. Ví dụ: nếu người dùng đang cố cập nhật nhận xét về bài đăng trên blog, họ có thực sự sở hữu nhận xét đó không? namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
3Lưu ý cuộc gọi đến phương pháp
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
49 trong ví dụ trên. Phương thức này cấp cho bạn quyền truy cập vào các tham số URI được xác định trên tuyến đang được gọi, chẳng hạn như tham số namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
60 trong ví dụ bên dướinamespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
4Nếu phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
48 trả về namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
62, phản hồi HTTP có mã trạng thái 403 sẽ tự động được trả về và phương thức điều khiển của bạn sẽ không thực thiNếu bạn dự định có logic ủy quyền trong một phần khác của ứng dụng của mình, chỉ cần trả về
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
63 từ phương thức namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
48namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
5Tùy chỉnh Định dạng Lỗi Flashed
Nếu bạn muốn tùy chỉnh định dạng của các lỗi xác thực được hiển thị trong phiên khi xác thực không thành công, hãy ghi đè
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
65 trên yêu cầu cơ sở của bạn [namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
66]. Đừng quên nhập lớp 88 ở đầu tệp
@foreach [$errors->all[] as $error]
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
6Tùy chỉnh Thông báo Lỗi
Bạn có thể tùy chỉnh các thông báo lỗi được sử dụng bởi yêu cầu biểu mẫu bằng cách ghi đè phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
68. Phương thức này sẽ trả về một mảng các cặp thuộc tính/quy tắc và các thông báo lỗi tương ứng của chúngnamespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
7Làm việc với thông báo lỗi
Sau khi gọi phương thức
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
69 trên phiên bản namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02, bạn sẽ nhận được phiên bản 85, 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
@foreach [$errors->all[] as $error]
Truy xuất thông báo lỗi đầu tiên cho một trường
Để truy xuất thông báo lỗi đầu tiên cho một trường nhất định, hãy sử dụng phương pháp
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
02namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
8Truy xuất tất cả các thông báo lỗi cho một trường
Nếu bạn chỉ muốn truy xuất một mảng gồm tất cả các thông báo cho một trường nhất định, hãy sử dụng phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
03namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
9Truy xuất tất cả các thông báo lỗi cho tất cả các trường
Để truy xuất một mảng gồm tất cả các thông báo cho tất cả các trường, hãy sử dụng phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
0440
@foreach [$errors->all[] as $error]
Xác định xem có tồn tại thông báo cho một trường hay không
41
@foreach [$errors->all[] as $error]
Truy xuất thông báo lỗi với định dạng
42
@foreach [$errors->all[] as $error]
Truy xuất tất cả các thông báo lỗi với định dạng
43
@foreach [$errors->all[] as $error]
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. Trước tiên, bạn có thể chuyển các thông báo tùy chỉnh làm đối số thứ ba cho phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
0544
@foreach [$errors->all[] as $error]
Trong ví dụ này, trình giữ chỗ
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
06 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. Ví dụ45
@foreach [$errors->all[] as $error]
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ể. Bạn có thể làm như vậy bằng cách sử dụng ký hiệu "dấu chấm". Chỉ định tên của thuộc tính trước, sau đó là quy tắc
46
@foreach [$errors->all[] as $error]
Chỉ định tin nhắn tùy chỉnh trong tệp ngôn ngữ
Trong nhiều trường hợp, bạn có thể muốn chỉ định các thông báo tùy chỉnh cụ thể thuộc tí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
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02. Để làm như vậy, hãy thêm tin nhắn của bạn vào mảng namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
08 trong tệp ngôn ngữ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
0947
@foreach [$errors->all[] as $error]
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][#rule-accepted] [URL đang hoạt động][#rule-active-url] [Sau [Ngày]][#rule-after] [Alpha][#rule-alpha] [Alpha Dash][#rule-
Đã được chấp nhận
Trường được xác thực phải là yes, on, 1 hoặc true. Đ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 chức năng PHP
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
10sau đó. ngày tháng
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
1148
@foreach [$errors->all[] as $error]
Thay vì chuyển một chuỗi ngày để được đánh giá bởi
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
11, bạn có thể chỉ định một trường khác để so sánh với ngày49
@foreach [$errors->all[] as $error]
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 là PHP
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
09trước. ngày tháng
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
11ở 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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
15boolean
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à
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
63, namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
62, namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
18, namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
19, namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
20 và namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
21đã xác nhận
Trường được xác thực phải có trường phù hợp là
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
22. Ví dụ: nếu trường được xác thực là namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
23, thì trường namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
24 phù hợp phải có trong thông tin đầu vàongày tháng
Trường được xác thực phải là ngày hợp lệ theo hàm PHP
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
11Đị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 đã cho. Định dạng sẽ được đánh giá bằng hàm PHP
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
26. Bạn nên sử dụng namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
27 hoặc namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
28 khi xác thực một trường, không phải cả haikhác nhau. cánh đồng
Trường được xác thực phải có giá trị khác với trường
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
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
60
@foreach [$errors->all[] as $error]
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
61
@foreach [$errors->all[] as $error]
Bạn cũng có thể chuyển
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
29 hoặc namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
30 cho mệnh đề "where"62
@foreach [$errors->all[] as $error]
hình ảnh
Tệp được xác thực phải là hình ảnh [jpeg, png, bmp, gif hoặc svg]
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 là số nguyên
ip
Trường được xác thực phải là địa chỉ IP
json
Trường được xác thực phải là một chuỗi JSON hợp lệ
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
15kị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
63
@foreach [$errors->all[] as $error]
Mặc dù bạn chỉ cần chỉ định phần mở rộng, nhưng quy tắc này thực sự hợp lệ đối với loại MIME của tệp bằng cách đọc nội dung của tệp và đoán loại MIME của nó
Có thể tìm thấy danh sách đầy đủ các loại MIME và các tiện ích mở rộng tương ứng của chúng tại vị trí sau. http. //svn. apache. org/repos/asf/httpd/httpd/trunk/docs/conf/mime. các loại
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
15not_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 là 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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
33, 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 ngangcần thiết
Trường được xác thực phải có trong dữ liệu đầu vào và không trống. Một trường được coi là "trống" là một trong những điều kiện sau đây là đúng
- Giá trị là
34namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
- Giá trị là một chuỗi rỗng
- Giá trị là một mảng trống hoặc đối tượng
35 trốngnamespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
- Giá trị là một tệp đã tải lên không có đường dẫn
bắt buộc_if. trường khác, giá trị,
Trường được xác thực phải có mặt nếu trường otherfield bằng bất kỳ giá trị nào
bắt buộc_unless. trường khác, giá trị,
Trường được xác thực phải có mặt trừ khi trường otherfield 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 đồ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
Trường được xác thực phải là một 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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
36duy 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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
37 không được chỉ định, tên trường sẽ được sử dụngChỉ định tên cột tùy chỉnh
64
@foreach [$errors->all[] as $error]
Kết nối cơ sở dữ liệu tùy chỉnh
Đôi khi, bạn có thể cần đặt kết nối tùy chỉnh cho các truy vấn cơ sở dữ liệu do Trình xác thực thực hiện. Như đã thấy ở trên, đặt
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
38 làm quy tắc xác thực sẽ sử dụng kết nối cơ sở dữ liệu mặc định để truy vấn cơ sở dữ liệu. Để ghi đè điều này, hãy chỉ định kết nối theo sau là tên bảng bằng cú pháp "dấu chấm"65
@foreach [$errors->all[] as $error]
Buộc một quy tắc duy nhất bỏ qua một ID đã cho
Đôi khi, bạn có thể muốn bỏ qua một ID nhất định trong quá trình kiểm tra duy nhất. Ví dụ: xem xét màn hình "cập nhật hồ sơ" bao gồm tên, địa chỉ email và vị trí của người dùng. Tất nhiên, bạn sẽ muốn xác minh rằng địa chỉ e-mail là duy nhất. Tuy nhiên, nếu người dùng chỉ thay đổi trường tên chứ không phải trường e-mail, bạn không muốn xảy ra lỗi xác thực vì người dùng đã là chủ sở hữu của địa chỉ e-mail. Bạn chỉ muốn đưa ra lỗi xác thực nếu người dùng cung cấp địa chỉ e-mail đã được người dùng khác sử dụng. Để yêu cầu quy tắc duy nhất bỏ qua ID của người dùng, bạn có thể chuyển ID làm tham số thứ ba
66
@foreach [$errors->all[] as $error]
Nếu bảng của bạn sử dụng tên cột khóa chính khác với
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
39, bạn có thể chỉ định nó làm tham số thứ tư67
@foreach [$errors->all[] as $error]
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
68
@foreach [$errors->all[] as $error]
Trong quy tắc trên, chỉ những hàng có
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
40 trên namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
18 mới được đưa vào kiểm tra duy nhấturl
Trường được xác thực phải là một URL hợp lệ theo hàm
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
42 của PHPThê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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
43 vào danh sách quy tắc của bạn69
@foreach [$errors->all[] as $error]
Trong ví dụ trên, trường
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
44 sẽ chỉ được xác thực nếu nó có trong mảng namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
45Xác thực có điều kiện phức tạp
Đôi khi bạn có thể muốn thêm các quy tắc xác thực dựa trên logic điều kiện phức tạp hơn. Ví dụ: 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
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02 với các quy tắc tĩnh không bao giờ thay đổi của bạn0
@foreach [$errors->all[] as $error]
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
43 trên trường hợp namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
021
@foreach [$errors->all[] as $error]
Đối số đầu tiên được truyền cho phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
43 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 namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
50 được thông qua khi đối số thứ ba trả về namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
63, 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úc2
@foreach [$errors->all[] as $error]
Ghi chú. Tham số
52 được chuyển đến
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
50 của bạn sẽ là một phiên bản của
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
54 và có thể được sử dụng để truy cập đầu vào và tệp của bạn
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
55 trên mặt tiền namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02. Hãy sử dụng phương pháp này trong một nhà cung cấp dịch vụ để đăng ký quy tắc xác thực tùy chỉnh3
@foreach [$errors->all[] as $error]
Trình xác thực tùy chỉnh Đóng nhận được bốn đối số. tên của
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
57 đang được xác thực, namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
58 của thuộc tính, một mảng namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
59 được truyền cho quy tắc và đối tượng namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02Bạn cũng có thể truyền một lớp và phương thức cho phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
55 thay vì một ClosureXác định thông báo lỗi
Bạn cũng sẽ cần xác định thông báo lỗi cho 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. Thông báo này phải được đặt ở cấp độ đầu tiên của mảng, không phải trong mảng
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
08, chỉ dành cho các thông báo lỗi thuộc tính cụ thể4
@foreach [$errors->all[] as $error]
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, sau đó thực hiện cuộc gọi đến phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
63 trên mặt tiền namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
use DispatchesJobs, ValidatesRequests;
protected function formatValidationErrors[Validator $validator]
return $validator->errors[]->all[];
02. Bạn có thể thực hiện việc này theo phương pháp namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
65 của nhà cung cấp dịch vụ5
@foreach [$errors->all[] as $error]
Tiện ích mở rộng tiềm ẩn
Theo mặc định, khi một thuộc tính đang được xác thực không có hoặc chứa một giá trị trống như được xác định bởi quy tắc
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
66, các quy tắc xác thực thông thường, bao gồm cả tiện ích mở rộng tùy chỉnh, sẽ không chạy. Ví dụ: quy tắc namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
67 sẽ không chạy với giá trị namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
346
@foreach [$errors->all[] as $error]
Để quy tắc chạy ngay cả khi thuộc tính trống, quy tắc phải ngụ ý rằng thuộc tính là bắt buộc. Để tạo tiện ích mở rộng "ngầm" như vậy, hãy sử dụng phương thức
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
* Show the form to create a new blog post.
return view['post.create'];
public function store[Request $request]
// Validate and store the blog post...
697
@foreach [$errors->all[] as $error]
Ghi chú. Phần mở rộng "ngầm" chỉ ngụ ý rằng thuộc tính là bắt buộc. Việc nó có thực sự làm mất hiệu lực một thuộc tính bị thiếu hoặc trống hay không là tùy thuộc vào bạn
Làm cách nào để xác thực tệp PDF trong Laravel 8?
Làm cách nào để xác thực tệp pdf trong Laravel? .Bước 1. Tạo tuyến đường. Bước cuối cùng để tạo một tuyến đường trong webBước 2. Tạo Trình điều khiển UploadController. Tiếp theo, bạn có thể yêu cầu UploadController để tạo UploadController chỉ bằng lệnh sau thông quaBước 4. Tạo một tệp Blade UploadFileLàm cách nào để xác thực tệp trong Laravel?
Làm cách nào để xác thực tệp CSV trong Laravel? .Kiểm tra xem loại MIME hoặc phần mở rộng tệp có phù hợp với nhu cầu của bạn khôngKiểm tra xem tệp đã tải lên có được định dạng ở định dạng CSV khôngKiểm tra xem cấu trúc tệp CSV của tệp đã tải lên có phù hợp với nhu cầu của bạn khôngLàm cách nào để tải xuống tệp PDF trong Laravel 8?
Bây giờ hãy làm theo tất cả các bước bên dưới để tải xuống pdf bằng laravel 8. .Bước 1 – Ở bước đầu tiên, Cài đặt gói dompdf. Chạy lệnh này trong thiết bị đầu cuối cmd của bạn – nhà soạn nhạc yêu cầu barryvdh/laravel-dompdfBước 2 - Trong bước thứ hai mở config/app. php và cập nhật nhà cung cấp dịch vụ gói và bí danh. 'nhà cung cấp' => [Làm cách nào để lưu trữ tệp PDF trong Laravel?
Làm cách nào để thêm tệp vào Laravel 8? .Bước 1 – Tải xuống ứng dụng Laravel 8Bước 2 – Cấu hình cơ sở dữ liệuBước 3 – Xây dựng mô hình tệp và di chuyểnBước 4 – Tạo các tuyến đườngBước 5 – Xây dựng bộ điều khiển tải lên bằng lệnh thủ côngBước 6 – Tạo biểu mẫu tải tệp lênBước 7 – Tạo thư mục bên trong Storage/app/public