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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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);
}
回答2:
First in .env
file
change APP_DEBUG=true
to APP_DEBUG=false
Second create your custom file and rename to 404.balde.php
and copy to
resources/views/errors/404.blade.php