首页 > 解决方案 > 如何正确配置自定义错误页面

问题描述

我有一个 WebController 我有这条路线:

Route::get('/error/{errorCode}', 'WebController@error')->name('error');

在 error() 方法中,我想配置相应页面的内容以显示错误代码、标题等,例如:

public function error($errorCode)
    {
        $error = new \stdClass();
        $error->code = $errorCode;
        $error->title = "Content is not available";


        return view('error', [
            'error' => $error
        ]);
    }

错误刀片.php

    @extends('master')
    @section('content')
    <div class="container">
       <p>{{ $error->code }}</p>
       <h1>{{ $error->title }}</h1>
    </div>
    @endsection

但是,如果我访问一个不存在的页面,例如它会显示一个默认的 404 页面而不是错误视图。您知道正确使用创建的错误视图而不是默认页面需要什么吗?

标签: laravel

解决方案


您可以使用render()Laravel 异常处理程序的方法: https ://github.com/laravel/laravel/blob/master/app/Exceptions/Handler.php

并使用此异常检查器返回您的视图:

if ($e instanceof ModelNotFoundException)
{
    return response()->view('errors', ['code' => 404], 404);
}

您也可以处理其他代码。


推荐阅读