我试图将用户重定向到Laravel 5.4中NotFoundHttpException的自定义404页面
为此,我在App \ Exceptions \ Handler.php文件中添加了以下代码:
public function render($request, Exception $exception)
{
if ($exception instanceof NotFoundHttpException) {
if ($request->expectsJson()) {
return response()->json(['error' => 'Not Found'], 404);
}
return response()->view('404', [], 404);
}
return parent::render($request, $exception);
}
出于某种原因,这不起作用。如果我在这里做错了,有人可以指出吗?
谢谢!
答案 0 :(得分:13)
Laravel会在退回默认视图之前渲染您的错误页面。
如果您的视图是在resources/views/errors/404.blade.php
中创建的。此页面将在回退错误页面之前呈现。
上述目录中的视图应该包含您尝试呈现的HTTP状态代码的名称。
更多信息可以在laravel文档中找到:
答案 1 :(得分:5)
只需在此处创建您的视图
resources/views/errors/404.blade.php
Laravel会自动为您服务
答案 2 :(得分:4)
您无需修改渲染功能。保持原状:
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
您所要做的只是制作视图:
资源/视图/错误/ 404.blade.php
然后将一些内容添加到文件中,例如:
@extends('layouts.app')
@section('content')
404
@endsection
Laravel负责其余的事情......