Symfony Exception

ConnectException

HTTP 500 Internal Server Error

cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

Exception

GuzzleHttp\Exception\ ConnectException

  1.             );
  2.         }
  3.         // Create a connection exception if it was a specific error code.
  4.         $error = isset($connectionErrors[$easy->errno])
  5.             ? new ConnectException($message$easy->requestnull$ctx)
  6.             : new RequestException($message$easy->request$easy->responsenull$ctx);
  7.         return \GuzzleHttp\Promise\rejection_for($error);
  8.     }
  1.             && (!$easy->errno || $easy->errno == 65)
  2.         ) {
  3.             return self::retryFailedRewind($handler$easy$ctx);
  4.         }
  5.         return self::createRejection($easy$ctx);
  6.     }
  7.     private static function createRejection(EasyHandle $easy, array $ctx)
  8.     {
  9.         static $connectionErrors = [
  1.         if (isset($easy->options['on_stats'])) {
  2.             self::invokeStats($easy);
  3.         }
  4.         if (!$easy->response || $easy->errno) {
  5.             return self::finishError($handler$easy$factory);
  6.         }
  7.         // Return the response if it is present and there is no error.
  8.         $factory->release($easy);
  1.         $easy $this->factory->create($request$options);
  2.         curl_exec($easy->handle);
  3.         $easy->errno curl_errno($easy->handle);
  4.         return CurlFactory::finish($this$easy$this->factory);
  5.     }
  6. }
  1.         callable $sync
  2.     ) {
  3.         return function (RequestInterface $request, array $options) use ($default$sync) {
  4.             return empty($options[RequestOptions::SYNCHRONOUS])
  5.                 ? $default($request$options)
  6.                 : $sync($request$options);
  7.         };
  8.     }
  9.     /**
  10.      * Sends streaming requests to a streaming compatible handler while sending
in /var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php :: GuzzleHttp\Handler\{closure} (line 51)
  1.         callable $default,
  2.         callable $streaming
  3.     ) {
  4.         return function (RequestInterface $request, array $options) use ($default$streaming) {
  5.             return empty($options['stream'])
  6.                 ? $default($request$options)
  7.                 : $streaming($request$options);
  8.         };
  9.     }
  10. }
  1.     {
  2.         $fn $this->nextHandler;
  3.         // Don't do anything if the request has no body.
  4.         if ($request->getBody()->getSize() === 0) {
  5.             return $fn($request$options);
  6.         }
  7.         $modify = [];
  8.         // Add a default content-type if possible.
  1.     public static function cookies()
  2.     {
  3.         return function (callable $handler) {
  4.             return function ($request, array $options) use ($handler) {
  5.                 if (empty($options['cookies'])) {
  6.                     return $handler($request$options);
  7.                 } elseif (!($options['cookies'] instanceof CookieJarInterface)) {
  8.                     throw new \InvalidArgumentException('cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface');
  9.                 }
  10.                 $cookieJar $options['cookies'];
  11.                 $request $cookieJar->withCookieHeader($request);
  1.         if (empty($options['allow_redirects']['max'])) {
  2.             return $fn($request$options);
  3.         }
  4.         return $fn($request$options)
  5.             ->then(function (ResponseInterface $response) use ($request$options) {
  6.                 return $this->checkRedirect($request$options$response);
  7.             });
  8.     }
  1.                 $nextRequest->getUri()
  2.             );
  3.         }
  4.         /** @var PromiseInterface|ResponseInterface $promise */
  5.         $promise $this($nextRequest$options);
  6.         // Add headers to be able to track history of redirects.
  7.         if (!empty($options['allow_redirects']['track_redirects'])) {
  8.             return $this->withTracking(
  9.                 $promise,
  1.             return $fn($request$options);
  2.         }
  3.         return $fn($request$options)
  4.             ->then(function (ResponseInterface $response) use ($request$options) {
  5.                 return $this->checkRedirect($request$options$response);
  6.             });
  7.     }
  8.     /**
  9.      * @param RequestInterface  $request
  1.         $p = new Promise([$queue'run']);
  2.         $value $this->value;
  3.         $queue->add(static function () use ($p$value$onFulfilled) {
  4.             if (Is::pending($p)) {
  5.                 try {
  6.                     $p->resolve($onFulfilled($value));
  7.                 } catch (\Throwable $e) {
  8.                     $p->reject($e);
  9.                 } catch (\Exception $e) {
  10.                     $p->reject($e);
  11.                 }
in /var/www/Pan/vendor/guzzlehttp/promises/src/TaskQueue.php :: GuzzleHttp\Promise\{closure} (line 48)
  1.     public function run()
  2.     {
  3.         while ($task array_shift($this->queue)) {
  4.             /** @var callable $task */
  5.             $task();
  6.         }
  7.     }
  8.     /**
  9.      * The task queue will be run and exhausted by default when the process
  1.     private function invokeWaitFn()
  2.     {
  3.         try {
  4.             $wfn $this->waitFn;
  5.             $this->waitFn null;
  6.             $wfn(true);
  7.         } catch (\Exception $reason) {
  8.             if ($this->state === self::PENDING) {
  9.                 // The promise has not been resolved yet, so reject the promise
  10.                 // with the exception.
  11.                 $this->reject($reason);
  1.     private function waitIfPending()
  2.     {
  3.         if ($this->state !== self::PENDING) {
  4.             return;
  5.         } elseif ($this->waitFn) {
  6.             $this->invokeWaitFn();
  7.         } elseif ($this->waitList) {
  8.             $this->invokeWaitList();
  9.         } else {
  10.             // If there's no wait function, then reject the promise.
  11.             $this->reject('Cannot wait on a promise that has '
  1.         $waitList $this->waitList;
  2.         $this->waitList null;
  3.         foreach ($waitList as $result) {
  4.             do {
  5.                 $result->waitIfPending();
  6.                 $result $result->result;
  7.             } while ($result instanceof Promise);
  8.             if ($result instanceof PromiseInterface) {
  9.                 $result->wait(false);
  1.         if ($this->state !== self::PENDING) {
  2.             return;
  3.         } elseif ($this->waitFn) {
  4.             $this->invokeWaitFn();
  5.         } elseif ($this->waitList) {
  6.             $this->invokeWaitList();
  7.         } else {
  8.             // If there's no wait function, then reject the promise.
  9.             $this->reject('Cannot wait on a promise that has '
  10.                 'no internal wait function. You must provide a wait '
  11.                 'function when constructing the promise to be able to '
  1.         return $this->then(null$onRejected);
  2.     }
  3.     public function wait($unwrap true)
  4.     {
  5.         $this->waitIfPending();
  6.         if ($this->result instanceof PromiseInterface) {
  7.             return $this->result->wait($unwrap);
  8.         }
  9.         if ($unwrap) {
  1.      * @throws GuzzleException
  2.      */
  3.     public function request($method$uri '', array $options = [])
  4.     {
  5.         $options[RequestOptions::SYNCHRONOUS] = true;
  6.         return $this->requestAsync($method$uri$options)->wait();
  7.     }
  8.     /**
  9.      * Get a client configuration option.
  10.      *
Client->request() in /var/www/Pan/app/Modules/Search/Base.php (line 34)
  1.         $client = new \GuzzleHttp\Client($param);
  2.         $html $client->request('GET'$url, [
  3.             'headers' => [
  4.                 'Accept-Encoding' => 'gzip, deflate',
  5.                 'User-Agent'=>'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:49.0) Gecko/20100101 Firefox/49.0',
  6.                 'Cookie' => $this->cookie,
  7.             ]
  8.         ]);
  9.         $html \Follow\Html::convertToUtf8((string)$html->getBody());
  10.         return $html;
  11.     }
Base->request() in /var/www/Pan/app/Modules/Search/Baidu.php (line 26)
  1.     {
  2.         $rawWord $word;
  3.         ///$word = "$word - (".implode("|", static::$blockWords).")";
  4.         $word '"pan.baidu.com/s/" '.$word;
  5.         $url "https://www.baidu.com/s?ie=utf-8&pn={$pn}&wd=".rawurlencode($word);
  6.         $html $this->request($url);
  7.         $html strip_tags($html"<a><span><div>");
  8.         $this->parseAndAdd($html);
  9.     }
  10.     public function parseAndAdd($html)
Baidu->getSearchResult() in /var/www/Pan/app/Modules/Search.php (line 23)
  1.     public function search($keywords)
  2.     {
  3.         $keywords trim($keywords);
  4.         $data \App\Models\SearchHistory::where('keywords'$keywords)->first();
  5.         if (empty($data) || ($data && time() - strtotime($data->updated_at) > 7*86400)) {
  6.             \App\Modules\Search\Baidu::instance()->getSearchResult($keywords);
  7.             if ($data) {
  8.                 $data->updated_at date('Y-m-d H:i:s'time());
  9.                 $data->save();
  10.             }
  11.         }
  1.         }
  2.         //$topic->title = \App\Modules\Search\Baidu::instance()->cleanTitle($topic->title);
  3.         //$topic->save();
  4.         if ($topic->view_count == 0) {
  5.             \App\Modules\Search::instance()->search($topic->title);
  6.         }
  7.         if (substr($topic->hash0,5) != $hash) {
  8.             return abort(404);
  9.         }
  1.      * @param  array  $parameters
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function callAction($method$parameters)
  5.     {
  6.         return $this->{$method}(...array_values($parameters));
  7.     }
  8.     /**
  9.      * Handle calls to missing methods on the controller.
  10.      *
  1.         $parameters $this->resolveClassMethodDependencies(
  2.             $route->parametersWithoutNulls(), $controller$method
  3.         );
  4.         if (method_exists($controller'callAction')) {
  5.             return $controller->callAction($method$parameters);
  6.         }
  7.         return $controller->{$method}(...array_values($parameters));
  8.     }
  1.      * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  2.      */
  3.     protected function runController()
  4.     {
  5.         return $this->controllerDispatcher()->dispatch(
  6.             $this$this->getController(), $this->getControllerMethod()
  7.         );
  8.     }
  9.     /**
  10.      * Get the controller instance for the route.
  1.     {
  2.         $this->container $this->container ?: new Container;
  3.         try {
  4.             if ($this->isControllerAction()) {
  5.                 return $this->runController();
  6.             }
  7.             return $this->runCallable();
  8.         } catch (HttpResponseException $e) {
  9.             return $e->getResponse();
  1.         return (new Pipeline($this->container))
  2.                         ->send($request)
  3.                         ->through($middleware)
  4.                         ->then(function ($request) use ($route) {
  5.                             return $this->prepareResponse(
  6.                                 $request$route->run()
  7.                             );
  8.                         });
  9.     }
  10.     /**
  1.      */
  2.     protected function prepareDestination(Closure $destination)
  3.     {
  4.         return function ($passable) use ($destination) {
  5.             try {
  6.                 return $destination($passable);
  7.             } catch (Throwable $e) {
  8.                 return $this->handleException($passable$e);
  9.             }
  10.         };
  11.     }
Pipeline->Illuminate\Pipeline\{closure}() in /var/www/Pan/app/Http/Controllers/Controller.php (line 39)
  1.         $this->template->error '';
  2.         $this->template->success '';
  3.         $this->template->actionName'';
  4.         $this->middleware(function ($request$next) {
  5.             view()->share('loginUser'\App\Modules\User::instance()->checkLogin());
  6.             return $next($request);
  7.         });
  8.         view()->share('boxList', array(
  9.             view('box.notice')
  10.         ));
  11.     }
  1.                 try {
  2.                     if (is_callable($pipe)) {
  3.                         // If the pipe is a callable, then we will call it directly, but otherwise we
  4.                         // will resolve the pipes out of the dependency container and call it with
  5.                         // the appropriate method and arguments, returning the results back out.
  6.                         return $pipe($passable$stack);
  7.                     } elseif (! is_object($pipe)) {
  8.                         [$name$parameters] = $this->parsePipeString($pipe);
  9.                         // If the pipe is a string we will parse the string and resolve the class out
  10.                         // of the dependency injection container. We can then build a callable and
  1.             }
  2.             throw $exception;
  3.         }
  4.         return $next($request);
  5.     }
  6. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.         // Putting the errors in the view for every view allows the developer to just
  2.         // assume that some errors are always available, which is convenient since
  3.         // they don't have to continually run checks for the presence of errors.
  4.         return $next($request);
  5.     }
  6. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.             $this->startSession($request$session)
  2.         );
  3.         $this->collectGarbage($session);
  4.         $response $next($request);
  5.         $this->storeCurrentUrl($request$session);
  6.         $this->addCookieToResponse($response$session);
  1.         if ($this->manager->shouldBlock() ||
  2.             ($request->route() instanceof Route && $request->route()->locksFor())) {
  3.             return $this->handleRequestWhileBlocking($request$session$next);
  4.         }
  5.         return $this->handleStatefulRequest($request$session$next);
  6.     }
  7.     /**
  8.      * Handle the given request within session state.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.      * @param  \Closure  $next
  2.      * @return mixed
  3.      */
  4.     public function handle($requestClosure $next)
  5.     {
  6.         $response $next($request);
  7.         foreach ($this->cookies->getQueuedCookies() as $cookie) {
  8.             $response->headers->setCookie($cookie);
  9.         }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.      * @param  \Closure  $next
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function handle($requestClosure $next)
  5.     {
  6.         return $this->encrypt($next($this->decrypt($request)));
  7.     }
  8.     /**
  9.      * Decrypt the cookies on the request.
  10.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.     {
  2.         $pipeline array_reduce(
  3.             array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
  4.         );
  5.         return $pipeline($this->passable);
  6.     }
  7.     /**
  8.      * Run the pipeline and return the result.
  9.      *
  1.                         ->through($middleware)
  2.                         ->then(function ($request) use ($route) {
  3.                             return $this->prepareResponse(
  4.                                 $request$route->run()
  5.                             );
  6.                         });
  7.     }
  8.     /**
  9.      * Gather the middleware for the given route with resolved class names.
  10.      *
  1.         });
  2.         $this->events->dispatch(new RouteMatched($route$request));
  3.         return $this->prepareResponse($request,
  4.             $this->runRouteWithinStack($route$request)
  5.         );
  6.     }
  7.     /**
  8.      * Run the given route within a Stack "onion" instance.
  1.      * @param  \Illuminate\Http\Request  $request
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function dispatchToRoute(Request $request)
  5.     {
  6.         return $this->runRoute($request$this->findRoute($request));
  7.     }
  8.     /**
  9.      * Find the route matching a given request.
  10.      *
  1.      */
  2.     public function dispatch(Request $request)
  3.     {
  4.         $this->currentRequest $request;
  5.         return $this->dispatchToRoute($request);
  6.     }
  7.     /**
  8.      * Dispatch the request to a route and return the response.
  9.      *
  1.     protected function dispatchToRouter()
  2.     {
  3.         return function ($request) {
  4.             $this->app->instance('request'$request);
  5.             return $this->router->dispatch($request);
  6.         };
  7.     }
  8.     /**
  9.      * Call the terminate method on any terminable middleware.
in /var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php -> Illuminate\Foundation\Http\{closure} (line 128)
  1.      */
  2.     protected function prepareDestination(Closure $destination)
  3.     {
  4.         return function ($passable) use ($destination) {
  5.             try {
  6.                 return $destination($passable);
  7.             } catch (Throwable $e) {
  8.                 return $this->handleException($passable$e);
  9.             }
  10.         };
  11.     }
  1.      */
  2.     public function handle($requestClosure $next)
  3.     {
  4.         $this->clean($request);
  5.         return $next($request);
  6.     }
  7.     /**
  8.      * Clean the request's data.
  9.      *
  1.             if ($callback($request)) {
  2.                 return $next($request);
  3.             }
  4.         }
  5.         return parent::handle($request$next);
  6.     }
  7.     /**
  8.      * Transform the given value.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.                 null,
  2.                 $this->getHeaders($data)
  3.             );
  4.         }
  5.         return $next($request);
  6.     }
  7.     /**
  8.      * Determine if the incoming request has a maintenance mode bypass cookie.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.     {
  2.         $pipeline array_reduce(
  3.             array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
  4.         );
  5.         return $pipeline($this->passable);
  6.     }
  7.     /**
  8.      * Run the pipeline and return the result.
  9.      *
  1.         $this->bootstrap();
  2.         return (new Pipeline($this->app))
  3.                     ->send($request)
  4.                     ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
  5.                     ->then($this->dispatchToRouter());
  6.     }
  7.     /**
  8.      * Bootstrap the application for HTTP requests.
  9.      *
  1.     public function handle($request)
  2.     {
  3.         try {
  4.             $request->enableHttpMethodParameterOverride();
  5.             $response $this->sendRequestThroughRouter($request);
  6.         } catch (Throwable $e) {
  7.             $this->reportException($e);
  8.             $response $this->renderException($request$e);
  9.         }
Kernel->handle() in /var/www/Pan/public/index.php (line 53)
  1. */
  2. $kernel $app->make(Illuminate\Contracts\Http\Kernel::class);
  3. $response $kernel->handle(
  4.     $request Illuminate\Http\Request::capture()
  5. );
  6. $response->send();
  7. $kernel->terminate($request$response);

Stack Trace

ConnectException
GuzzleHttp\Exception\ConnectException:
cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

  at /var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200
  at GuzzleHttp\Handler\CurlFactory::createRejection()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:155)
  at GuzzleHttp\Handler\CurlFactory::finishError()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:105)
  at GuzzleHttp\Handler\CurlFactory::finish()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php:43)
  at GuzzleHttp\Handler\CurlHandler->__invoke()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php:28)
  at GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php:51)
  at GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php:37)
  at GuzzleHttp\PrepareBodyMiddleware->__invoke()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Middleware.php:29)
  at GuzzleHttp\Middleware::GuzzleHttp\{closure}()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:70)
  at GuzzleHttp\RedirectMiddleware->__invoke()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:115)
  at GuzzleHttp\RedirectMiddleware->checkRedirect()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:72)
  at GuzzleHttp\RedirectMiddleware->GuzzleHttp\{closure}()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/FulfilledPromise.php:41)
  at GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise\{closure}()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/TaskQueue.php:48)
  at GuzzleHttp\Promise\TaskQueue->run()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/Promise.php:248)
  at GuzzleHttp\Promise\Promise->invokeWaitFn()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/Promise.php:224)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/Promise.php:269)
  at GuzzleHttp\Promise\Promise->invokeWaitList()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/Promise.php:226)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (/var/www/Pan/vendor/guzzlehttp/promises/src/Promise.php:62)
  at GuzzleHttp\Promise\Promise->wait()
     (/var/www/Pan/vendor/guzzlehttp/guzzle/src/Client.php:182)
  at GuzzleHttp\Client->request()
     (/var/www/Pan/app/Modules/Search/Base.php:34)
  at App\Modules\Search\Base->request()
     (/var/www/Pan/app/Modules/Search/Baidu.php:26)
  at App\Modules\Search\Baidu->getSearchResult()
     (/var/www/Pan/app/Modules/Search.php:23)
  at App\Modules\Search->search()
     (/var/www/Pan/app/Http/Controllers/TopicController.php:110)
  at App\Http\Controllers\TopicController->getDetail()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54)
  at Illuminate\Routing\Controller->callAction()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45)
  at Illuminate\Routing\ControllerDispatcher->dispatch()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Route.php:262)
  at Illuminate\Routing\Route->runController()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Route.php:205)
  at Illuminate\Routing\Route->run()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Router.php:721)
  at Illuminate\Routing\Router->Illuminate\Routing\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/app/Http/Controllers/Controller.php:39)
  at App\Http\Controllers\Controller->App\Http\Controllers\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:50)
  at Illuminate\Routing\Middleware\SubstituteBindings->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49)
  at Illuminate\View\Middleware\ShareErrorsFromSession->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121)
  at Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:64)
  at Illuminate\Session\Middleware\StartSession->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37)
  at Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:67)
  at Illuminate\Cookie\Middleware\EncryptCookies->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
  at Illuminate\Pipeline\Pipeline->then()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Router.php:723)
  at Illuminate\Routing\Router->runRouteWithinStack()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Router.php:698)
  at Illuminate\Routing\Router->runRoute()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Router.php:662)
  at Illuminate\Routing\Router->dispatchToRoute()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Routing/Router.php:651)
  at Illuminate\Routing\Router->dispatch()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:167)
  at Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
  at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:40)
  at Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:86)
  at Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
  at Illuminate\Pipeline\Pipeline->then()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:142)
  at Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
     (/var/www/Pan/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:111)
  at Illuminate\Foundation\Http\Kernel->handle()
     (/var/www/Pan/public/index.php:53)