Laravel 5.3从abort处理错误()

时间:2016-11-04 17:49:28

标签: php laravel laravel-5

我正在尝试使用laravel 5.3处理自定义错误,但似乎无法正确捕获中止(404)。

如果我将中止放入我的路线(web.php),我会得到我的404页面。

如果我将中止放入刀片中,我会收到NotFoundHttpException消息,但默认为我的回退错误情况,即500。

app / exceptions / handler.php渲染功能:

    // 404 page when a model is not found
    if ($exception instanceof ModelNotFoundException or $exception instanceof NotFoundHttpException) {
        return response()->view('errors.404', $requestAndException, 404);
    }

    if ($this->isHttpException($exception)) {
        //return $this->renderHttpException($exception);
        // mirrored code from renderHttpException to allow for exception-less errors in non-dev mode
        $status = $exception->getStatusCode();

        if (view()->exists("errors.{$status}")) {
            return response()->view("errors.{$status}", $requestAndException, $status, $exception->getHeaders());
        } else {
            return $this->convertExceptionToResponse($exception);
        }
    } else {
        // Custom error 500 view on production
        return response()->view('errors.500', $requestAndException, 500);
    }

我尝试使用特定的例外更新使用部分,但似乎没有什么区别。目前坐在:

use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在you views文件夹中创建一个名为“errors”的文件夹,然后在其中创建例外的自定义视图:404.blade.php,500.blade.php。 当你有一个与视图名称相同状态的中止时,Laravel会为你处理它,所以你不必输入你的路线。