/**
  * Create the response for when a request fails validation.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  array  $errors
  * @return \Illuminate\Http\Response
  */
 protected function buildFailedValidationResponse(Request $request, array $errors)
 {
     if ($request->ajax() && !$request->pjax() || $request->wantsJson()) {
         return new JsonResponse($errors, 422);
     }
     return redirect()->to($this->getRedirectUrl())->withInput($request->input())->withErrors($errors, $this->errorBag());
 }
Example #2
0
 /**
  * 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()) {
         //            return response([
         //                'status' => 'error',
         //                'message' => $e->getMessage()
         //            ], 500);
     }
     return parent::render($request, $e);
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  Closure                  $next
  *
  * @return mixed
  */
 public function handel($request, Closure $next)
 {
     if (!$request->pjax()) {
         return $next($request);
     }
     // First we get the request fragment, then we compile it to view cache
     // next time we can request the cached view instead of manipulate complex
     // string from response.
     // 覆写 view factory
     // 检查是否有已存的模版
     // 检查是否过期
     // (编译模版
     // 取出一种的代码段另存)-》 如果不能直接取代码段-》 crawler dom 或 pjax
     // 执行并返回
     return $next($request);
 }
Example #5
0
 /**
  * Determine if the request is the result of an PJAX call.
  *
  * @return bool 
  * @static 
  */
 public static function pjax()
 {
     return \Illuminate\Http\Request::pjax();
 }
Example #6
0
 /**
  * Create the response for when a request successed.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 protected function buildSucessedResponse(Request $request)
 {
     if ($request->ajax() && !$request->pjax() || $request->wantsJson()) {
         return new JsonResponse(['success' => 1], 200);
     }
     return redirect()->intended($this->getRequest()->get('redirect') ?: '/');
 }
 /**
  * @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';
 }
Example #8
0
 /**
  * Create the response for when a request fails validation.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  array  $errors
  * @return \Illuminate\Http\Response
  */
 protected function buildFailedValidationResponse(Request $request, array $errors)
 {
     if ($request->ajax() && !$request->pjax() || $request->wantsJson()) {
         return new JsonResponse($errors, 422);
     }
     if ($request->ajax()) {
         zbase()->json()->setVariable('_redirect', app(UrlGenerator::class)->previous());
     } else {
         return redirect()->to($this->getRedirectUrl())->withInput($request->input())->withErrors($errors, $this->errorBag());
     }
 }
Example #9
0
 /**
  * Create a response object from the given validation exception.
  *
  * @param  \Illuminate\Validation\ValidationException  $e
  * @param  \Illuminate\Http\Request  $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 protected function convertValidationExceptionToResponse(ValidationException $e, $request)
 {
     if ($e->response) {
         return $e->response;
     }
     $errors = $e->validator->errors()->getMessages();
     if ($request->ajax() && !$request->pjax() || $request->wantsJson()) {
         return response()->json($errors, 422);
     }
     return redirect()->back()->withInput($request->input())->withErrors($errors);
 }