Home > Blockchain >  Laravel 9 throw custom error view if DB connection fails?
Laravel 9 throw custom error view if DB connection fails?

Time:01-09

what i am trying to do is if the connection to the database fails, instead of getting No connection could be made because the target machine actively refused it, i want to throw a custom view that displays a simple h1 with the text that the connection fails. How can i do that?

CodePudding user response:

You can do this by modifying your app/Exceptions/Handler.php to catch that specific error:

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

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

Of course you can change the QueryException to any exception that you want to handle, such as: Illuminate\Database\Eloquent\ModelNotFoundException or any other.

CodePudding user response:

In 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);
    }
}

In resources/views/errors, errors.database, you can create custom style

  • Related