前言:
查看了一些网上的方法,很多都是使用自定义异常类来处理自定义404页面,我只是想用 Laravel8自带异常类来进行处理,所以记录一下自己的方法。
方法:
文件:?app\Exceptions\Handler.php
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
... 框架自带代码段 ...
public function register()
{
$this->renderable(function (Throwable $e, $request) {
return response()->view('your_errors_page', [], 404|500|...);
});
}
... 框架自带代码段 ...
}
说明:
直接在原 register() 方法里添加 $this->renderable() 方法,return 自己的 view page,还有 http 状态码即可。
2022-03-09 追记:
测试过程中发现,仅仅用上述方法会将其他错误一并显示为 404 page not found,所以在搜索了一番之后,将 $this->renderable() 方法内改进为一下方式。
代码:
$this->renderable(function (Throwable $e, $request) {
if ($e instanceof RouteNotFoundException) {
return response()->view('errors.404', [], 404);
}
});
|