Làm cách nào để tạo thông báo tùy chỉnh trong xác thực Laravel?

Xác thực trong Livewire sẽ giống với xác thực mẫu tiêu chuẩn trong Laravel. Nói tóm lại, Livewire cung cấp thuộc tính

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

6 để đặt quy tắc xác thực trên cơ sở từng thành phần và phương thức
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

7 để xác thực thuộc tính của thành phần bằng cách sử dụng các quy tắc đó

Đây là một ví dụ đơn giản về biểu mẫu trong Livewire đang được xác thực

            

1class ContactForm extends Component

7 'name' => 'required|min:6',

8 'email' => 'required|email',

15 // Execution doesn't reach here if validation fails.

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

Nếu xác thực không thành công, một

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

8 tiêu chuẩn sẽ bị ném [và bị Livewire bắt] và đối tượng
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

9 tiêu chuẩn có sẵn trong chế độ xem của thành phần. Do đó, bất kỳ mã hiện có nào bạn có, có thể bao gồm Blade, để xử lý xác thực trong phần còn lại của ứng dụng của bạn cũng sẽ được áp dụng ở đây

Bạn cũng có thể thêm các cặp khóa/tin nhắn tùy chỉnh vào túi lỗi

        

1$this->addError['key', 'message']

Nếu bạn cần xác định các quy tắc động, bạn có thể thay thế thuộc tính

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

6 cho phương thức
        

1$this->addError['key', 'message']

1 trên thành phần

        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

Đôi khi, việc xác thực trường biểu mẫu khi người dùng nhập vào trường đó rất hữu ích. Livewire làm cho việc xác thực "thời gian thực" trở nên đơn giản bằng phương pháp

        

1$this->addError['key', 'message']

2

Để xác thực trường nhập liệu sau mỗi lần cập nhật, chúng ta có thể sử dụng móc nối

        

1$this->addError['key', 'message']

3 của Livewire

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

2

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

3

Hãy chia nhỏ chính xác những gì đang xảy ra trong ví dụ này

  • Người dùng nhập vào trường "tên"
  • Khi người dùng nhập tên của họ, thông báo xác thực sẽ hiển thị nếu tên đó ít hơn 6 ký tự
  • Người dùng có thể chuyển sang nhập email của họ và thông báo xác thực cho tên vẫn hiển thị
  • Khi người dùng gửi biểu mẫu, sẽ có kiểm tra xác thực lần cuối và dữ liệu sẽ được duy trì

Nếu bạn đang thắc mắc, "tại sao tôi cần

        

1$this->addError['key', 'message']

4? Tôi không thể sử dụng
        

1$this->addError['key', 'message']

5?". Lý do là vì nếu không, mọi cập nhật cho bất kỳ trường nào sẽ xác thực TẤT CẢ các trường. Đây có thể là một trải nghiệm người dùng chói tai. Hãy tưởng tượng nếu bạn nhập một ký tự vào trường đầu tiên của biểu mẫu và đột nhiên mọi trường đơn lẻ đều có thông báo xác thực.
        

1$this->addError['key', 'message']

4 ngăn chặn điều đó và chỉ xác thực trường hiện tại đang được cập nhật

Xác thực với các quy tắc bên ngoài thuộc tính
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

6

Nếu vì bất kỳ lý do gì mà bạn muốn xác thực bằng cách sử dụng các quy tắc khác với các quy tắc được xác định trong thuộc tính

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

6, bạn luôn có thể thực hiện việc này bằng cách chuyển trực tiếp các quy tắc vào các phương thức
        

1$this->addError['key', 'message']

9 và
        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

0

            

1class ContactForm extends Component

7 'name' => 'required|min:6',

8 'email' => 'required|email',

15 // Execution doesn't reach here if validation fails.

1

Tùy chỉnh Thông báo Lỗi & Thuộc tính

Nếu bạn muốn tùy chỉnh các thông báo xác thực được sử dụng bởi thành phần Livewire, bạn có thể làm như vậy với thuộc tính

        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

1

Nếu bạn muốn giữ các thông báo xác thực mặc định của Laravel, nhưng chỉ tùy chỉnh phần

        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

2 của thông báo, bạn có thể chỉ định tên thuộc tính tùy chỉnh bằng cách sử dụng thuộc tính
        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

3

            

1class ContactForm extends Component

7 'name' => 'required|min:6',

8 'email' => 'required|email',

15 // Execution doesn't reach here if validation fails.

5

Bạn có thể thay thế thuộc tính

        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

1 cho phương thức
        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

5 trên thành phần

Nếu bạn không sử dụng thuộc tính xác thực toàn cầu của

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

6 thì bạn có thể chuyển trực tiếp các thông báo và thuộc tính tùy chỉnh vào
        

1$this->addError['key', 'message']

9

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

0

Thao tác thông báo lỗi trực tiếp

Các phương pháp

        

1$this->addError['key', 'message']

9 và
        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

0 sẽ xử lý hầu hết các trường hợp, nhưng đôi khi bạn có thể muốn kiểm soát trực tiếp ErrorBag bên trong của Livewire

Livewire cung cấp một số phương pháp để bạn thao tác trực tiếp với ErrorBag

Từ bất kỳ đâu bên trong lớp thành phần Livewire, bạn có thể gọi các phương thức sau

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

3

Phiên bản Trình xác thực truy cập

Đôi khi, bạn có thể muốn truy cập phiên bản Trình xác thực mà Livewire sử dụng trong các phương thức

        

1$this->addError['key', 'message']

9 và
        

1class ContactForm extends Component

6 protected function rules[]

9 'name' => 'required|min:6',

10 'email' => ['required', 'email', 'not_in:' . auth[]->user[]->email],

0. Điều này có thể sử dụng phương pháp
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

22. Bao đóng mà bạn cung cấp nhận trình xác thực được xây dựng đầy đủ làm đối số, cho phép bạn gọi bất kỳ phương thức nào của nó trước khi các quy tắc xác thực thực sự được đánh giá

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

0

Xác nhận thử nghiệm

Livewire cung cấp các tiện ích kiểm tra hữu ích cho các tình huống xác thực. Hãy viết một bài kiểm tra đơn giản cho thành phần "Mẫu liên hệ" ban đầu

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

1

Điều này rất hữu ích, nhưng chúng ta có thể tiến thêm một bước và thực sự kiểm tra các quy tắc xác thực cụ thể

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

2

Livewire cũng cung cấp nghịch đảo của

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

23 ->
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

24

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

3

Để biết thêm ví dụ về cú pháp được hỗ trợ cho hai phương thức này, hãy xem Tài liệu kiểm tra

Trình xác thực tùy chỉnh

Nếu bạn muốn sử dụng hệ thống xác thực của riêng mình trong Livewire, đó không phải là vấn đề. Livewire sẽ bắt

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

8 và cung cấp lỗi cho chế độ xem giống như sử dụng
            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

7

Ví dụ

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

4

            

1

2

3 @error['name'] {{ $message }} @enderror

5

6 @error['email'] {{ $message }} @enderror

8 Save Contact

5

Bạn có thể tự hỏi liệu bạn có thể sử dụng "FormRequest" của Laravel hay không. Do bản chất của Livewire, việc nối vào yêu cầu http sẽ không hợp lý. Hiện tại, chức năng này không thể thực hiện được hoặc được khuyến nghị

Làm cách nào để tùy chỉnh thông báo lỗi xác thực trong laravel?

Để khắc phục điều này, chúng ta có thể tùy chỉnh các thông báo lỗi bằng cách chuyển một mảng thứ hai làm đối số, chứa các khóa được tạo bằng cách sử dụng tên của tham số, dấu chấm và sau đó là tên của . - the value will be the error message we want to display.

Làm cách nào để xác thực tùy chỉnh trong laravel?

Bắt đầu xác thực .
Xác định các tuyến đường khác nhau. .
Tạo bộ điều khiển mới. .
Mã hóa logic xác thực. .
Thuộc tính lồng nhau. .
Tạo và triển khai các yêu cầu biểu mẫu. .
Các móc sau để hình thành yêu cầu. .
Ngừng sau lần xác thực đầu tiên không thành công. .
Chuẩn bị một tuyến đường chuyển hướng

Phương pháp được sử dụng để chỉ định thông báo tùy chỉnh cho các lỗi xác thực trong yêu cầu biểu mẫu là gì?

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 withErrors để đưa thông báo lỗi vào phiên. Khi sử dụng phương pháp này, biến $errors 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.

Làm cách nào để thay đổi thông báo xác thực mặc định trong laravel?

sử dụng Ứng dụng\Http\Requests\CustomRequest;. phản hồi chức năng công khai [CustomRequest $request] { $validation = Trình xác thực. make[$request->all[], [ 'reponse' => 'required', ]];

Chủ Đề