Render an exception into an HTTP response.
public render ( Illuminate\Http\Request $request, Exception $e ) : Illuminate\Http\Response | ||
$request | Illuminate\Http\Request | |
$e | Exception | |
리턴 | Illuminate\Http\Response |
public function testNotFoundRender() { $path = base_path('tests/storage/logs/report.log'); \Log::useFiles($path); $exception = new \Illuminate\Database\Eloquent\ModelNotFoundException(); $exception->setModel('Testing'); $response = $this->handler->render($this->app['request'], $exception); $this->assertSame(404, $response->getStatusCode()); $this->beforeApplicationDestroyed(function () use($path) { \File::delete($path); }); }
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { if (strpos($request->url(), '/api/') === false) { return parent::render($request, $e); } $response = []; // If the app is in debug mode if (config('app.debug')) { // Add the exception class name, message and stack trace to response $response['exception'] = get_class($e); // Reflection might be better here $response['message'] = $e->getMessage(); $response['file'] = $e->getFile(); $response['line'] = $e->getLine(); } // Default response of 400 $status = 400; // If this exception is an instance of HttpException if ($this->isHttpException($e)) { // Grab the HTTP status code from the Exception $status = $e->getStatusCode(); $response['status'] = $status; $response['message'] = self::$statusMessages[$status]; } // Return a JSON response with the response array and status code return response()->json($response, $status)->header('Access-Control-Allow-Origin', env('ALLOWED_HOSTS', '*'))->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE')->header('Access-Control-Allow-Credentials', 'true')->header('Access-Control-Allow-Headers', 'Content-Type, X-Auth-Token, Origin, Authorization'); }
public function render($request, Exception $e) { if (!env('APP_DEBUG')) { $this->csiService->registerCrash($e); } return parent::render($request, $e); }
public function render($request, Exception $e) { //we can target any error we like if ($e instanceof \Bootleg\Cms\CustomError) { //we can potentially return something different for ajax requests if ($request->ajax()) { return $this->renderExceptionWithWhoops($request, $e); } else { return $this->renderExceptionWithWhoops($request, $e); } } if ($this->isHttpException($e)) { $statusCode = $e->getStatusCode(); switch ($statusCode) { //different handling for different error codes case '404': return $this->renderHttpExceptionView($e); break; default: return $this->renderExceptionWithWhoops($request, $e); break; } } else { return parent::render($request, $e); } }
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { if ($e instanceof ModelNotFoundException) { $e = new NotFoundHttpException($e->getMessage(), $e); } return parent::render($request, $e); }
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * * @return \Illuminate\Http\Response */ public function render($request, \Exception $e) { if ($request->ajax() && !$request->pjax() || $request->wantsJson()) { return $this->sendResponseForApiException($e); } if (is_backend()) { if ($e instanceof ModelNotFoundException) { return $this->sendResponseForModelNotFound($e); } if ($e instanceof ValidationException) { return $this->sendResponseForValidationError($request, $e); } return $this->renderControllerException($e); } return parent::render($request, $e); }
/** * Render an exception into an HTTP response. * * @param Request $request * @param Exception $e * @return Response */ public function render($request, Exception $e) { if ($e instanceof HttpException) { if (!$e->getStatusCode() == 404) { return $this->renderHttpException($e); } if (($redirect = config('streams::404.redirect')) && $request->path() !== $redirect) { return redirect($redirect, 301); } return $this->renderHttpException($e); } elseif (!config('app.debug')) { return response()->view("streams::errors.500", ['message' => $e->getMessage()], 500); } else { return parent::render($request, $e); } }