Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to return custom view for http error response in Laravel 5?

How Can I define custom View files for each of http error responses and then ask laravel to send that view file automatically to user when I'm returning an http error response in my application?

like image 328
Salar Avatar asked Feb 17 '16 08:02

Salar


1 Answers

Basically you can define a page for every HTTP error code and put it in resources/views/errors/

So, if you want to create a view for a 404 HTTP response you should create the view:

resources/views/errors/404.blade.php

and Laravel will redirect automatically your users to the specific view

Additionally, you can customize the App\Exceptions\Handler class that is responsable for rendering errors from exceptions: the render method is called everytime an Exception rises, so you can intercept the HttpException generated by the HTTP error and redirect wherever you want:

public function render($request, Exception $e)
{
    //if $e is an HttpException
    if ($e instanceof HttpException ) {

        //get the status code 
        $status = $e->getStatusCode() ;

        //if status code is 501 redirect to custom view
        if( $status == 501 )
            return response()->view('my.custom.view', [], 501);
    }

    return parent::render($request, $e);
}
like image 184
Moppo Avatar answered Oct 13 '22 23:10

Moppo