如果DB连接失败,Laravel 9会抛出自定义错误视图?

fkvaft9z  于 2023-01-10  发布在  其他
关注(0)|答案(2)|浏览(134)

我尝试做的是,如果到数据库的连接失败了,我不想得到No connection could be made because the target machine actively refused it,而是想抛出一个自定义视图,显示一个简单的h1,其中包含连接失败的文本。

b4lqfgs4

b4lqfgs41#

您可以通过修改app/Exceptions/Handler.php来捕获该特定错误:

public function render($request, Throwable $exception) {
    if ($exception instanceof QueryException) {
        return response()->view('errorpage');
    }

    return parent::render($request, $exception);
}

当然,您可以将QueryException更改为您想要处理的任何异常,例如:Illuminate\Database\Eloquent\ModelNotFoundException或任何其它的。

ncgqoxb0

ncgqoxb02#

输入app/Exceptions/Handler.php

use PDOException;
use App\Exceptions\Handler;

class ExceptionHandler extends Handler
{
    public function render($request, Exception $exception)
    {
        if ($exception instanceof PDOException) {
            return response()->view('errors.database', [], 500);
        }

        return parent::render($request, $exception);
    }
}

resources/views/errorserrors.database中,可以创建自定义样式

相关问题