Xin chào nhà phát triển, Hôm nay chúng ta sẽ tìm hiểu Laravel 9 Form Validation With Error Messages. Hướng dẫn này sẽ đề cập đến cách xác thực biểu mẫu trong laravel 9 với các thông báo lỗi
Bài viết này đi vào chi tiết về xác thực mẫu laravel 9 với các thông báo lỗi. Chúng ta sẽ xem xét ví dụ về xác thực mẫu laravel 9 với văn bản thông báo lỗi. nếu bạn có câu hỏi về xác thực mẫu trong laravel 9 thì tôi…
Xác nhận là khía cạnh quan trọng nhất trong khi thiết kế một ứng dụng. Nó xác nhận dữ liệu đến. Theo mặc định, lớp trình điều khiển cơ sở sử dụng đặc điểm ValidatesRequests cung cấp một phương thức thuận tiện để xác thực các yêu cầu HTTP đến bằng nhiều quy tắc xác thực mạnh mẽ
Quy tắc xác thực có sẵn trong Laravel
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à biến $errors 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 $errors luôn được xác định và có thể được sử dụng một cách an toàn. Bảng sau hiển thị tất cả các quy tắc xác thực có sẵn trong Laravel
Các quy tắc xác thực có sẵn trong LaravelAcceptedActive URLSau [Ngày]AlphaAlpha DashAlpha NumericArrayTrước [Ngày]BetweenBooleanConfirmedDateDate FormatDifferentDigitsDigits BetweenE-MailExists [Database]Image [File]InIntegerIP AddressJSONMaxMIME Type[File]MinNot InNumericRegular ExpressionBắt buộcNếu được yêu cầu Trừ khi được yêu cầu WithBắt buộc Với tất cảKhông cần thiếtKhông yêu cầuKhông có AllSameSameSizeTimeURLBiến $errors sẽ là một thể hiện của Illuminate\Support\MessageBag. Thông báo lỗi có thể được hiển thị trong tệp xem bằng cách thêm mã như hình bên dưới
@if [count[$errors] > 0]
-
@foreach [$errors->all[] as $error]
- {{ $error }} @endforeach
Ví dụ
Bước 1 - Tạo bộ điều khiển có tên là ValidationController bằng cách thực hiện lệnh sau
php artisan make:controller ValidationController --plain
Bước 2 - Sau khi thực hiện thành công, bạn sẽ nhận được đầu ra sau -
Bước 3 - Sao chép đoạn mã sau vào
ứng dụng/Http/Bộ điều khiển/ValidationController. tập tin php
ứng dụng/Http/Bộ điều khiển/ValidationController. php
all[]]; $this->validate[$request,[ 'username'=>'required|max:8', 'password'=>'required' ]]; } }
Bước 4 - Tạo một tệp xem có tên là tài nguyên/lượt xem/đăng nhập. lưỡi. php và sao chép đoạn mã sau vào tệp đó
tài nguyên/lượt xem/đăng nhập. lưỡi. php
Login Form @if [count[$errors] > 0]
-
@foreach [$errors->all[] as $error]
- {{ $error }} @endforeach
Bước 5 - Thêm các dòng sau vào app/Http/routes. php
ứng dụng/Http/tuyến. php
Route::get['/validation','ValidationController@showform']; Route::post['/validation','ValidationController@validateform'];
Bước 6 - Truy cập URL sau để kiểm tra xác thực
//localhost:8000/validation
Bước 7 - Nhấp vào nút “Đăng nhập” mà không cần nhập bất kỳ thứ gì vào trường văn bản. Đầu ra sẽ được hiển thị như trong hình sau
Đôi khi, do cách chúng tôi đặt tên cho các thông số đầu vào hoặc yêu cầu của mình, cuối cùng chúng tôi sẽ hiển thị các thông báo lỗi xác thực không phù hợp và trông không phù hợp với người dùng cuối
Đây là một ví dụ
3namespace App\Http\Controllers\Api;
5use App\Http\Controllers\Controller;
7class CartItemsController extends Controller
12 'qty' => ['required', 'integer', 'min:10'],
13 'productId' => ['required', 'exists:products,id']
Chúng tôi xác thực trường qty
, nhưng chúng tôi đang sử dụng từ viết tắt chứ không phải từ số lượng đầy đủ. Và trong khi điều này được chấp nhận trong mã;
Điều này thậm chí còn tồi tệ hơn khi chúng ta xử lý các tên tham số như productId.
Mặc dù lỗi đầu tiên là khá, nhưng ít nhất thì lỗi thứ hai hơi kỳ lạ. Là người dùng cuối, tôi sẽ mong đợi điều gì đó trong dòng "Sản phẩm không còn nữa. "
Để 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 quy tắc xác thực - giá trị sẽ là thông báo lỗi mà chúng ta muốn
Trong trường hợp quy tắc xác thực `min`, để nhận được giá trị tối thiểu bắt buộc, chúng ta có thể sử dụng tên quy tắc làm trình giữ chỗ `. tối thiểu
3namespace App\Http\Controllers\Api;
5use App\Http\Controllers\Controller;
7class CartItemsController extends Controller
12 'qty' => ['required', 'integer', 'min:10'],
13 'productId' => ['required', 'exists:products,id']
15 'qty.min' => 'The quantity must be at least :min.',
16 'productId.exists' => 'The product is no longer available.'
Và, tất nhiên, chúng ta có thể làm điều tương tự bằng cách sử dụng các đối tượng yêu cầu biểu mẫu. Chỉ có điều bây giờ, mảng thông báo lỗi sẽ được trả về bằng phương thức
php artisan make:controller ValidationController --plain0 mới được thêm vào