Làm cách nào để khắc phục lỗi 404 trong Laravel?

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 GitHub

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

Làm cách nào để xử lý lỗi 404 trong laravel?

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 resource/views/ bên trong đây tạo thư mục lỗi và trong thư mục tạo 404. lưỡi kiếm. tệp 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.

Làm cách nào để xử lý lỗi 404 trong Laravel 8?

Cách tạo mã trạng thái 404 trả về cho Laravel 8 .
1 - Trả về 404 khi truy vấn Model. Khi truy vấn mô hình bằng cách sử dụng "findOrFail[$x]" hoặc "firstOrFail[]", nó có thể tự động trả về bản ghi không tìm thấy. .
2 - Sử dụng hủy bỏ [404].
3 - Sử dụng Phản hồi tùy chỉnh. .
4 - Trả về Chế độ xem 404 tùy chỉnh

Lỗi 404 trong laravel là gì?

Chế độ xem 404 mặc định của Laravel. Các chế độ xem lỗi tùy chỉnh đi kèm với cài đặt Laravel mặc định như sau. Lỗi 401 — Trái phép. Lỗi 403-bị cấm. Lỗi 404 — Không tìm thấy .

Làm cách nào để chuyển hướng trang lỗi 404 về trang chủ trong laravel?

Nếu mã trạng thái là 404, chúng tôi có thể trả về một chế độ xem [ví dụ:. lỗi. 404] hoặc chuyển hướng đến một nơi nào đó hoặc tuyến đường [nhà]. Để kiểm tra. Thêm abort[500]; . Tôi đã sử dụng 500, nhưng bạn có thể sử dụng một trong các mã lỗi. Hủy bỏ[404]. . I used 500, but you can use one of errors code: Abort[404]...

Chủ Đề