Xác thực Pdf trong Laravel 8

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

@foreach [$errors->all[] as $error]

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ẽ

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

@foreach [$errors->all[] as $error]

9 của mình

// 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ệu

Tạ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[];

2

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...

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

@foreach [$errors->all[] as $error]

8. Đặc điểm này cung cấp một 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 thuận tiện trong tất cả các bộ điều khiển của bạn

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 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[];

2

@foreach [$errors->all[] as $error]

4

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ường

Lư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"

@foreach [$errors->all[] as $error]

6

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

@foreach [$errors->all[] as $error]

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ó

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

@foreach [$errors->all[] as $error]

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]

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

@foreach [$errors->all[] as $error]

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

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 422

Cá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

@foreach [$errors->all[] as $error]

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

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ới

@foreach [$errors->all[] as $error]

8

Đố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ệu

Sau 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

@foreach [$errors->all[] as $error]

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

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[];

09

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 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[];

05

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

Sau đó, 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

@foreach [$errors->all[] as $error]

82

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

Mó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ự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

Xá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 CLI

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...

0

Lớ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[];

47

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...

1

Vì 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...

2

Nế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...

3

Lư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ướ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...

4

Nế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 thi

Nế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[];

48

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...

5

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 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

@foreach [$errors->all[] as $error]

88 ở đầu tệ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...

6

Tù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ú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...

7

Là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

@foreach [$errors->all[] as $error]

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

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...

02

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...

8

Truy 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...

03

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...

9

Truy 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...

04

@foreach [$errors->all[] as $error]

40

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

@foreach [$errors->all[] as $error]

41

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

@foreach [$errors->all[] as $error]

42

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

@foreach [$errors->all[] as $error]

43

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...

05

@foreach [$errors->all[] as $error]

44

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ụ

@foreach [$errors->all[] as $error]

45

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

@foreach [$errors->all[] as $error]

46

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...

09

@foreach [$errors->all[] as $error]

47

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...

10

sau đó. 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...

11

@foreach [$errors->all[] as $error]

48

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ày

@foreach [$errors->all[] as $error]

49

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[];

09

trướ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...

15

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à

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ào

ngà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ả hai

khá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

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

@foreach [$errors->all[] as $error]

60

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

@foreach [$errors->all[] as $error]

61

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"

@foreach [$errors->all[] as $error]

62

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...

15

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

@foreach [$errors->all[] as $error]

63

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...

15

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 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 ngang

cầ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à

    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...

    34
  • Giá trị là một chuỗi rỗng
  • Giá trị là một mảng trống hoặc đối tượ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...

    35 trống
  • 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...

36

duy 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ụng

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

@foreach [$errors->all[] as $error]

64

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"

@foreach [$errors->all[] as $error]

65

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

@foreach [$errors->all[] as $error]

66

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ư

@foreach [$errors->all[] as $error]

67

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

@foreach [$errors->all[] as $error]

68

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ất

url

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 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

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ạn

@foreach [$errors->all[] as $error]

69

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...

45

Xá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ạn

@foreach [$errors->all[] as $error]

0

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[];

02

@foreach [$errors->all[] as $error]

1

Đố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úc

@foreach [$errors->all[] as $error]

2

Ghi chú. Tham số

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...

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

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ỉnh

@foreach [$errors->all[] as $error]

3

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[];

02

Bạ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 Closure

Xá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ể

@foreach [$errors->all[] as $error]

4

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ụ

@foreach [$errors->all[] as $error]

5

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...

34

@foreach [$errors->all[] as $error]

6

Để 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...

69

@foreach [$errors->all[] as $error]

7

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 web
Bướ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 qua
Bước 4. Tạo một tệp Blade UploadFile

Là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ông
Kiểm tra xem tệp đã tải lên có được định dạng ở định dạng CSV không
Kiể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ông

Là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-dompdf
Bướ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 8
Bước 2 – Cấu hình cơ sở dữ liệu
Bước 3 – Xây dựng mô hình tệp và di chuyển
Bước 4 – Tạo các tuyến đường
Bước 5 – Xây dựng bộ điều khiển tải lên bằng lệnh thủ công
Bước 6 – Tạo biểu mẫu tải tệp lên
Bước 7 – Tạo thư mục bên trong Storage/app/public

Chủ Đề