Thông qua hướng dẫn Laravel này, chúng tôi muốn chia sẻ với các bạn cách dễ dàng tạo trang lỗi tùy chỉnh 404 và các trang lỗi 403, 500, 419, 255, 405 trong ứng dụng Laravel
Trong khi làm việc trên một ứng dụng web, các lỗi hay chính xác hơn là ngoại lệ có thể xuất hiện bất cứ lúc nào, Laravel framework xử lý các ngoại lệ một cách tuyệt vời
Nó cung cấp một lớp trình xử lý lỗi tiện dụng, tìm kiếm hầu hết mọi lỗi được hiển thị trong môi trường Laravel và trả về phản hồi thích hợp
Nói chung, bạn có thể nhận được phản hồi lỗi mặc định nếu bạn định cấu hình thuộc tính gỡ lỗi thành sai;
Hãy xử lý các lỗi tùy chỉnh trong Laravel
Tạo dự án Laravel mới
Bắt đầu hướng dẫn này bằng cách tạo một dự án Laravel hoàn toàn mới bằng cách sử dụng lệnh sau
composer create-project laravel/laravel --prefer-dist laravel-error-handling-example
Tạo trang lỗi 404 tùy chỉnh
Bạn cần tạo chế độ xem phiến cho các trang lỗi, di chuyển đến đường dẫn này tài nguyên/lượt xem/ bên trong đây tạo thư mục lỗi và trong thư mục tạo 404. lưỡi. tập tin php. Nó sẽ chuyển hướng bạn đến trang 404 nếu bạn không tìm thấy URL được liên kết
Tương tự, bạn có thể tạo phần còn lại của chế độ xem lưỡi xử lý lỗi cho các ngoại lệ 403, 500, 419, 255 và 405
Bao gồm đoạn mã sau trong tài nguyên/lượt xem/lỗi/404. lưỡi. tập tin lỗi php
404 Custom Error Page Example
404
Oops! Something is wrong.
Để kiểm tra mẫu lỗi tùy chỉnh 404, bạn cần khởi động ứng dụng
php artisan serve
Như bạn đã biết, lỗi 404 xảy ra khi bạn truy cập vào liên kết không tồn tại, vì vậy hãy nhập sai URL trên thanh địa chỉ của trình duyệt
http://127.0.0.1:8000/not
Dễ dàng phải không nào. Hướng dẫn này đã kết thúc, tôi hy vọng bạn thích nó
máy đào
Tôi là Digamber, một nhà phát triển full-stack và là người đam mê thể dục. Tôi đã tạo trang web này để truyền kinh nghiệm mã hóa của mình cho các lập trình viên mới. Tôi thích viết trên JavaScript, ECMAScript, React, Angular, Vue, Laravel
Twitter GitHubBài viết đề xuất
Laravel 9 Xác thực Giao thức Internet [IPv6] Hướng dẫn Laravel 9 Nhập bản ghi trong SQL với CSV và Seeder Cách triển khai Xác thực tồn tại trong Laravel 9 Form Laravel 9 Livewire Ví dụ về Hướng dẫn tạo Slug mới Laravel 9 Tạo nhiều Slug duy nhất khi tải trang Hướng dẫn Laravel 9 Bootstrap Tags Ví dụ về hệ thống Hướng dẫn Laravel 9 Tạo
Ngoại lệ PHP tương tự như ngoại lệ trong các ngôn ngữ lập trình khác. Các ngoại lệ được đưa ra khi xảy ra lỗi hoặc sự kiện không xác định. Tất cả các ngoại lệ PHP đều mở rộng lớp Ngoại lệ cơ sở
Laravel cung cấp ứng dụng/Ngoại lệ/Trình xử lý. php kiểm tra tất cả các ngoại lệ được đưa vào ứng dụng. Về cơ bản, mọi ngoại lệ được đưa vào ứng dụng đều có thể được định cấu hình trong tệp này và có thể tạo phản hồi thích hợp
Trong hướng dẫn này, chúng ta sẽ xem cách tạo phản hồi tùy chỉnh cho trang 404. Chúng tôi đang sử dụng Laravel 5. 6. Theo mặc định, Laravel trả lại trang Whoops. Chúng tôi sẽ xem cách trả lại một trang tùy chỉnh tùy thuộc vào ngoại lệ. Điều này sẽ giúp bạn trả về một trang tùy chỉnh cho mọi Ngoại lệ HTTP mà bạn muốn
Khi ai đó truy cập vào một tuyến đường không có mặt, trang web của bạn sẽ hiển thị lỗi. Nó cũng ảnh hưởng đến SEO của bạn
Vì vậy, hãy xem cách chúng ta có thể quản lý trang 404, các ngoại lệ HTTP khác và Ngoại lệ tùy chỉnh trong Laravel
Mục lục
Thiết lập dự án Laravel
Hãy tạo một dự án laravel mới. Chạy lệnh sau để tạo một dự án mới trong thư mục có tên là lỗi
composer create-project --prefer-dist laravel/laravel errors
Xử lý ngoại lệ
Tất cả các thay đổi liên quan đến xử lý ngoại lệ sẽ được thực hiện trong app/Exceptions/Handler. php. Chúng tôi sẽ trả lại chế độ xem khi có lỗi
Trang 404 tùy chỉnh
Hãy tạo một trang 404 tùy chỉnh trong Laravel. Trong ứng dụng/Ngoại lệ/Trình xử lý. php, hãy sửa đổi phương thức kết xuất
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $exception * @return \Illuminate\Http\Response */ public function render[$request, Exception $exception] { if [$this->isHttpException[$exception]] { if [$exception->getStatusCode[] == 404] { return response[]->view['errors.' . '404', [], 404]; } } return parent::render[$request, $exception]; }
Trong phương thức kết xuất, chúng tôi kiểm tra xem ngoại lệ có phải là ngoại lệ HTTP không. Điều này rất quan trọng vì chúng ta đang gọi phương thức getStatusCode[] chỉ khả dụng trên các ngoại lệ HTTP. Nếu mã trạng thái là 404, chúng tôi sẽ trả về lỗi xem. 404 với cả mã trạng thái. Bạn có thể thay đổi tên của chế độ xem nếu bạn muốn
Chúng ta phải tạo chế độ xem cho trang 404. Vì vậy, hãy tạo một tệp xem lỗi/404 mới. lưỡi. php
Page not found - 404 The page your looking for is not available
Nếu bạn muốn tạo một trang tùy chỉnh cho bất kỳ ngoại lệ HTTP nào khác, chỉ cần thêm câu lệnh if mới và thay đổi 404 bằng mã trạng thái mới. Đây là phương pháp kết xuất để xử lý các trang tùy chỉnh mã trạng thái 404 và 500
public function render[$request, Exception $exception] { if [$this->isHttpException[$exception]] { if [$exception->getStatusCode[] == 404] { return response[]->view['errors.' . '404', [], 404]; } if [$exception->getStatusCode[] == 500] { return response[]->view['errors.' . '500', [], 500]; } } return parent::render[$request, $exception]; }
Đây là phản hồi 404 từ ứng dụng của chúng tôi
Trang ngoại lệ HTTP tùy chỉnh
Chúng tôi cũng có thể tự động hóa quá trình này. Sẽ thật tuyệt nếu chúng ta chỉ phải tạo một tệp xem mới cho ngoại lệ. Nhu cầu thêm mã vào ứng dụng/Ngoại lệ/Trình xử lý. php cho mọi ngoại lệ HTTP sẽ không còn cần thiết nữa. Trong ứng dụng/Ngoại lệ/Trình xử lý. php sửa đổi phương thức kết xuất
________số 8_______Bây giờ, bạn chỉ cần tạo chế độ xem với mã trạng thái của ngoại lệ. phương thức kết xuất sẽ kiểm tra xem chế độ xem có tồn tại với mã trạng thái của ngoại lệ không. Nếu có chế độ xem, nó sẽ chỉ trả về phản hồi HTTP với chế độ xem đó và mã trạng thái
Ví dụ: chúng tôi có thể tạo lỗi/404. lưỡi. php cho các trang lỗi 404, lỗi/500. lưỡi. php cho 500 trang lỗi, v.v.
Xử lý ngoại lệ tùy chỉnh
Trước tiên hãy tạo một ngoại lệ tùy chỉnh. Chạy đoạn mã sau để tạo một ngoại lệ có tên là TestingHttpException
php artisan make:exception TestingHttpException
Trong ứng dụng/Ngoại lệ/Trình xử lý. php, hãy sửa đổi phương thức kết xuất
public function render[$request, Exception $exception] { if [$exception instanceof TestingHttpException] { return response[]->view['errors.testing']; } return parent::render[$request, $exception]; }
Nếu ngoại lệ là một phiên bản của TestingHttpException, nó sẽ trả về lỗi. chế độ xem thử nghiệm
Bạn cũng có thể sử dụng phương pháp hủy bỏ với mã 404 và nó sẽ cung cấp phản hồi HTTP với trang 404 tùy chỉnh