Laravel 5.2中的Internet不可用例外

时间:2016-05-27 12:11:22

标签: laravel laravel-5 laravel-5.1 laravel-5.2

我试图从我的Laravel应用程序打开Sandbox paypal页面并面临以下问题

enter image description here

当互联网连接不可用时出现此问题。就像我们面对404问题一样......因为我们在View文件夹中有404刀片。

有没有办法处理此异常,以便我们可以向用户显示用户友好页面,请检查您的互联网连接

当我写下以下代码时,它不起作用:

if ($e instanceof \PayPal\Exception\PayPalConnectionException) {
    return response()->view('errors.InternetConnection');
}

但是当我写

时它会起作用
if ($e instanceof \PayPal\Exception\PayPalConnectionException) {
    \App::abort(404);
}

我在错误文件夹

中创建了一个名为InternetConnection的新刀片

4 个答案:

答案 0 :(得分:1)

您可以在 App \ Exceptions \ Handler @ render 中侦听此异常。只需添加:

    if ($e instanceof PayPalConnectionException) {
        return response()->view('errors.404', [], 404);
    }

答案 1 :(得分:1)

是的,你可以! (https://laravel.com/docs/5.1/errors#the-exception-handler

你的App \ Exceptions \ Handler中的

...
public function render($request, Exception $e)
{
    if ($e instanceof PayPalConnectionException) {
        //my paypal exception
        return response()->view('errors.payPalConnectionError', [], 404);
    }

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

答案 2 :(得分:1)

这样可行: -

您需要创建名为错误的文件夹(如果视图中尚未存在),并在其中放置名为404.blade.php的刀片文件 。并在此刀片中放入404错误的错误模板。当发生404错误时,laravel将自动使用它。

答案 3 :(得分:1)

在你的app / Exceptions / Handler.php编辑渲染方法中:

public function render($request, Exception $e)
{
    if($e instanceof ValidationException) return response()->view('errors.abc');
    return parent::render($request, $e);
}

记住不要忘记在Handler.php中 USE 异常

就像我正在显示ValidationException的abc视图所以我在Handler.php类中添加了这一行

use Illuminate\Validation\ValidationException;

否则这不起作用。