在Lumen中自定义404页面

wha*_*hat 11 laravel lumen

我是Lumen的新手,想要用这个框架创建一个应用程序.现在我遇到的问题是,如果某个用户输入了错误的网址=> http://www.example.com/abuot(错误)=> http://www.example.com/about(右),我想提出一个自定义错误页面,它将是中间件级别的理想发生.

此外,我能够检查当前url是否有效,但我不确定如何在中间件中"制作"视图,response() - > view()将不起作用.

如果有人可以提供帮助,那会很棒.

Jam*_*mes 26

看到错误被处理App\Exceptions\Handler,这是处理它们的最佳位置.

如果您只是在自定义404错误页面之后,那么您可以非常轻松地完成此操作:

Handler文件顶部添加此行:

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

改变render功能看起来像这样:

public function render($request, Exception $e)
{
    if($e instanceof NotFoundHttpException){
        return response(view("errors.404"), 404);
    }
    return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)

这假设您的自定义404页面存储在视图中的错误文件夹中,并将返回自定义错误页面以及404状态代码.

  • 对于那些 if 不起作用的人,请确保导入类 `use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;` 或在 if 语句中指定完整路径 `($e instanceof \Symfony\Component\HttpKernel\Exception\ NotFoundHttpException)` (2认同)