/**
  * Render an exception into an HTTP response.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Exception  $e
  * @return Response
  */
 public function render($request, \Exception $e)
 {
     if ($e instanceof TokenMismatchException) {
         $e = new Http500Exception('表单安全性验证失败,很可能是因为表单长期未提交已经过期,请返回上一页刷新页面');
     }
     if ($e instanceof MethodNotAllowedHttpException) {
         $e = new Http500Exception('打开方式不对@.@');
     }
     if ($this->isHttpException($e)) {
         return $this->renderHttpException($e);
     }
     if ($e instanceof BugsnagException) {
         if ($request->acceptsHtml()) {
             $response = $e->getHtmlResponse();
         } else {
             $response = $e->getJsonResponse();
         }
         if ($response instanceof Response) {
             return $response;
         }
     }
     if (config('app.debug')) {
         return $this->renderExceptionWithWhoops($e);
     }
     return parent::render($request, $e);
 }
Example #2
0
 /**
  * Determines whether a request accepts HTML.
  *
  * @return bool 
  * @static 
  */
 public static function acceptsHtml()
 {
     return \Illuminate\Http\Request::acceptsHtml();
 }
 /**
  * @param \Illuminate\Http\Request $request
  * @return string
  */
 public function guessRequestType(Request $request)
 {
     $userAgent = strtolower($request->header('User-Agent'));
     $contentType = array_get($request->getAcceptableContentTypes(), 0);
     if (strpos($userAgent, 'googlebot') !== false) {
         return 'googlebot';
     } elseif ($request->ajax()) {
         return 'ajax';
     } elseif ($request->pjax()) {
         return 'pjax';
     } elseif ($contentType === null) {
         return 'raw';
     } elseif (Str::contains($contentType, ['application/rss+xml', 'application/rdf+xml', 'application/atom+xml'])) {
         return 'feed';
     } elseif ($request->wantsJson() || Str::contains($contentType, ['application/xml', 'text/xml'])) {
         return 'api';
     } elseif (!$request->acceptsHtml()) {
         return 'other';
     } elseif (Auth::check()) {
         return 'user';
     }
     return 'public';
 }