Php 如何在Laravel 5中返回http错误响应的自定义视图?
当我在应用程序中返回http错误响应时,如何为每个http错误响应定义自定义视图文件,然后让laravel自动将该视图文件发送给用户?基本上,您可以为每个http错误代码定义一个页面,并将其放入Php 如何在Laravel 5中返回http错误响应的自定义视图?,php,laravel,exception,laravel-5,Php,Laravel,Exception,Laravel 5,当我在应用程序中返回http错误响应时,如何为每个http错误响应定义自定义视图文件,然后让laravel自动将该视图文件发送给用户?基本上,您可以为每个http错误代码定义一个页面,并将其放入资源/views/errors/ 因此,如果要为404 HTTP响应创建视图,则应创建以下视图: resources/views/errors/404.blade.php Laravel会自动将用户重定向到特定视图 此外,您可以自定义负责呈现异常错误的App\Exceptions\Handler类:每当
资源/views/errors/
因此,如果要为404 HTTP响应创建视图,则应创建以下视图:
resources/views/errors/404.blade.php
Laravel会自动将用户重定向到特定视图
此外,您可以自定义负责呈现异常错误的App\Exceptions\Handler
类:每当出现Exception
时,都会调用render
方法,因此您可以截获由HTTP错误生成的HttpException
,并重定向到任何需要的地方:
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);
}
.env
文件中的第一个
将APP_DEBUG=true
更改为APP_DEBUG=false
然后创建自定义文件并重命名为
404.balde.php
并复制到
resources/views/errors/404.blade.php
您的意思是返回错误代码,然后Laravel返回您的自定义视图?我可以像这样从控制器发送501错误:返回响应()->View('my.custom.View',[],501)@萨拉尔:是的,但是使用
处理程序的渲染
方法将使其自动:每当应用程序内部出现501错误时,就会触发渲染
方法,并且视图将与状态代码一起显示。在您的情况下,您将手动返回视图并传递状态代码。不要忘记为HttpException指定名称空间:使用Symfony\Component\HttpKernel\Exception\HttpException;