在Laravel 5中,App::missing
和App::error
是不可用的,那么现在如何捕捉异常和丢失的页面呢?
我在文件中找不到任何与此相关的信息.
在Laravel 5中,App::missing
和App::error
是不可用的,那么现在如何捕捉异常和丢失的页面呢?
我在文件中找不到任何与此相关的信息.
在Laravel 5中,可以通过编辑app/Exceptions/Handler.php
中的render
方法捕捉异常.
If you want to catch a missing page (also known as NotFoundException
) you would want to check if the exception, $e
, is an instance of Symfony\Component\HttpKernel\Exception\NotFoundHttpException
.
public function render($request, Exception $e) {
if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
return response(view('error.404'), 404);
return parent::render($request, $e);
}
With the code above, we check if $e
is an instanceof
of Symfony\Component\HttpKernel\Exception\NotFoundHttpException
and if it is we send a response
with the view file error.404
as content with the HTTP status code 404.
This can be used to ANY exception. So if your app is sending out an exception of App\Exceptions\MyOwnException
, you check for that instance instead.
public function render($request, Exception $e) {
if ($e instanceof \App\Exceptions\MyOwnException)
return ''; // Do something if this exception is thrown here.
if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
return response(view('error.404'), 404);
return parent::render($request, $e);
}