我正在尝试使用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;
有什么想法吗?
答案 0 :(得分:0)
在you views文件夹中创建一个名为“errors”的文件夹,然后在其中创建例外的自定义视图:404.blade.php,500.blade.php。 当你有一个与视图名称相同状态的中止时,Laravel会为你处理它,所以你不必输入你的路线。