Laravel nhận lỗi xác thực trong bộ điều khiển

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

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

@endif

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

@endif '/validation']]; ?> Login Username Password

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 --plain
0 mới được thêm vào

Làm cách nào để nhận lỗi xác thực trong bộ điều khiển Laravel?

Hiển thị lỗi xác thực .
    @foreach [$errors->all[] as $error]
  • {{ $error }}
  • .
    @endforeach.
    @endif

    Làm cách nào để hiển thị lỗi xác thực trong Laravel 8?

    Thông báo lỗi xác thực tùy chỉnh trong Laravel .
    Bước 1 – Cài đặt ứng dụng Laravel 8
    Bước 2 – Kết nối ứng dụng với cơ sở dữ liệu
    Bước 3 – Chạy lệnh di chuyển
    Bước 4 – Thêm tuyến đường
    Bước 5 – Tạo bộ điều khiển bằng lệnh
    Bước 6 – Tạo chế độ xem lưỡi cắt
    Bước 7 – Chạy máy chủ phát triển

    Làm cách nào tôi có thể xem tất cả các lỗi xác thực ở một nơi?

    Thêm điều khiển ValidationSummary vào trang tại vị trí bạn muốn hiển thị thông báo lỗi đã thu thập. Đặt thuộc tính ErrorMessage và Display của các điều khiển xác thực riêng lẻ. [Mặc định] Mỗi ​​thông báo lỗi xuất hiện dưới dạng một mục có dấu đầu dòng. Mỗi thông báo lỗi xuất hiện trên dòng riêng của nó

    Làm cách nào để kiểm tra xác thực đúng hay sai trong Laravel?

    Một đối tượng quy tắc chứa hai phương thức. vượt qua và tin nhắn. Phương thức pass nhận giá trị và tên thuộc tính, đồng thời sẽ trả về giá trị đúng hoặc sai tùy thuộc vào giá trị thuộc tính có hợp lệ hay không . Phương thức thông báo sẽ trả về thông báo lỗi xác thực sẽ được sử dụng khi xác thực không thành công.

    Chủ Đề