Symfony \ Component \ HttpKernel \ Exception \ HttpException (404)
No query results for model [App\Models\JyhProduct].
Previous exceptions
  • No query results for model [App\Models\JyhProduct]. (0)
Symfony\Component\HttpKernel\Exception\HttpException thrown with message "No query results for model [App\Models\JyhProduct]." Stacktrace: #58 Symfony\Component\HttpKernel\Exception\HttpException in /www/wwwroot/testjyh/v2/app/Exceptions/Handler.php:63 #57 App\Exceptions\Handler:render in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:83 #56 Illuminate\Routing\Pipeline:handleException in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:32 #55 Illuminate\Database\Eloquent\ModelNotFoundException in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:454 #54 Illuminate\Database\Eloquent\Builder:firstOrFail in /www/wwwroot/testjyh/v2/app/Http/Controllers/JyhSiteController.php:101 #53 App\Http\Controllers\JyhSiteController:productDetail in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54 #52 call_user_func_array in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54 #51 Illuminate\Routing\Controller:callAction in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45 #50 Illuminate\Routing\ControllerDispatcher:dispatch in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Route.php:219 #49 Illuminate\Routing\Route:runController in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Route.php:176 #48 Illuminate\Routing\Route:run in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php:680 #47 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30 #46 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41 #45 Illuminate\Routing\Middleware\SubstituteBindings:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #44 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #43 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:75 #42 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #40 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49 #39 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #37 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/app/Http/Middleware/SetSiteLanguage.php:33 #36 App\Http\Middleware\SetSiteLanguage:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #34 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:56 #33 Illuminate\Session\Middleware\StartSession:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #31 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37 #30 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #28 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:66 #27 Illuminate\Cookie\Middleware\EncryptCookies:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #25 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104 #24 Illuminate\Pipeline\Pipeline:then in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682 #23 Illuminate\Routing\Router:runRouteWithinStack in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php:657 #22 Illuminate\Routing\Router:runRoute in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php:623 #21 Illuminate\Routing\Router:dispatchToRoute in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php:612 #20 Illuminate\Routing\Router:dispatch in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176 #19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30 #18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 #17 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 #14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27 #11 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62 #8 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/fideloper/proxy/src/TrustProxies.php:57 #5 Fideloper\Proxy\TrustProxies:handle in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163 #4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53 #3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104 #2 Illuminate\Pipeline\Pipeline:then in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151 #1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116 #0 Illuminate\Foundation\Http\Kernel:handle in /www/wwwroot/testjyh/v2/public/index.php:55
58
Symfony\Component\HttpKernel\Exception\HttpException
/app/Exceptions/Handler.php63
57
App\Exceptions\Handler render
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php83
56
Illuminate\Routing\Pipeline handleException
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php32
55
Illuminate\Database\Eloquent\ModelNotFoundException
/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php454
54
Illuminate\Database\Eloquent\Builder firstOrFail
/app/Http/Controllers/JyhSiteController.php101
53
App\Http\Controllers\JyhSiteController productDetail
/vendor/laravel/framework/src/Illuminate/Routing/Controller.php54
52
call_user_func_array
/vendor/laravel/framework/src/Illuminate/Routing/Controller.php54
51
Illuminate\Routing\Controller callAction
/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php45
50
Illuminate\Routing\ControllerDispatcher dispatch
/vendor/laravel/framework/src/Illuminate/Routing/Route.php219
49
Illuminate\Routing\Route runController
/vendor/laravel/framework/src/Illuminate/Routing/Route.php176
48
Illuminate\Routing\Route run
/vendor/laravel/framework/src/Illuminate/Routing/Router.php680
47
Illuminate\Routing\Router Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php30
46
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php41
45
Illuminate\Routing\Middleware\SubstituteBindings handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
44
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
43
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php75
42
Illuminate\Foundation\Http\Middleware\VerifyCsrfToken handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
41
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
40
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php49
39
Illuminate\View\Middleware\ShareErrorsFromSession handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
38
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
37
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/app/Http/Middleware/SetSiteLanguage.php33
36
App\Http\Middleware\SetSiteLanguage handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
35
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
34
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php56
33
Illuminate\Session\Middleware\StartSession handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
32
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
31
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php37
30
Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
29
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
28
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php66
27
Illuminate\Cookie\Middleware\EncryptCookies handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
26
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
25
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php104
24
Illuminate\Pipeline\Pipeline then
/vendor/laravel/framework/src/Illuminate/Routing/Router.php682
23
Illuminate\Routing\Router runRouteWithinStack
/vendor/laravel/framework/src/Illuminate/Routing/Router.php657
22
Illuminate\Routing\Router runRoute
/vendor/laravel/framework/src/Illuminate/Routing/Router.php623
21
Illuminate\Routing\Router dispatchToRoute
/vendor/laravel/framework/src/Illuminate/Routing/Router.php612
20
Illuminate\Routing\Router dispatch
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php176
19
Illuminate\Foundation\Http\Kernel Illuminate\Foundation\Http\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php30
18
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php21
17
Illuminate\Foundation\Http\Middleware\TransformsRequest handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
16
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
15
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php21
14
Illuminate\Foundation\Http\Middleware\TransformsRequest handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
13
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
12
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php27
11
Illuminate\Foundation\Http\Middleware\ValidatePostSize handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
10
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
9
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php62
8
Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
7
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
6
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/fideloper/proxy/src/TrustProxies.php57
5
Fideloper\Proxy\TrustProxies handle
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php163
4
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
3
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php104
2
Illuminate\Pipeline\Pipeline then
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php151
1
Illuminate\Foundation\Http\Kernel sendRequestThroughRouter
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php116
0
Illuminate\Foundation\Http\Kernel handle
/public/index.php55
/www/wwwroot/testjyh/v2/app/Exceptions/Handler.php
     * @return void
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {
        if ($e instanceof HttpResponseException) {
            return $e->getResponse();
        } elseif ($e instanceof ModelNotFoundException) {
            $e = new HttpException(200, $e->getMessage(), $e, [], 404);
        } elseif ($e instanceof AuthorizationException) {
            $e = new HttpException(200, $e->getMessage(), $e, [], 403);
        } elseif ($e instanceof ValidationException) {
            $params_error = $e->validator->getMessageBag()->all();
            $e = new HttpException(200, $e->validator->getMessageBag()->first(), $e, [], 400);
        } elseif ($e instanceof NotFoundHttpException) {
            if($request->expectsJson()){
                $e = new HttpException(200, 'API接口地址不存在', $e, [], 404);
            }else{
                $e = new HttpException(404, $e->getMessage(), $e, [], 404);
            }
        } elseif ($e instanceof MethodNotAllowedHttpException) {
            $e = new HttpException(200, '请求方法错误', $e, [], 404);
        } elseif ($e instanceof QueryException) {
            $e = new HttpException(200, '系统忙,请稍后重试', $e, [], 4000001);
        }elseif ($e instanceof AuthenticationException){
            info("未登录");
            $e = new HttpException(401, $e->getMessage(), $e, [], 403);
        }elseif($e instanceof FatalErrorException){
            $e = new HttpException(200, '操作异常:'.$e->getSeverity(), $e, [], 406);
Arguments
  1. "No query results for model [App\Models\JyhProduct]."
    
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
        if (! $this->container->bound(ExceptionHandler::class) ||
            ! $passable instanceof Request) {
            throw $e;
        }

        $handler = $this->container->make(ExceptionHandler::class);

        $handler->report($e);

        $response = $handler->render($passable, $e);

        if (method_exists($response, 'withException')) {
            $response->withException($e);
        }

        return $response;
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
/**
 * This extended pipeline catches any exceptions that occur during each slice.
 *
 * The exceptions are converted to HTTP responses for proper middleware handling.
 */
class Pipeline extends BasePipeline
{
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
    protected function prepareDestination(Closure $destination)
    {
        return function ($passable) use ($destination) {
            try {
                return $destination($passable);
            } catch (Exception $e) {
                return $this->handleException($passable, $e);
            } catch (Throwable $e) {
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
        return tap($this->firstOrNew($attributes), function ($instance) use ($values) {
            $instance->fill($values)->save();
        });
    }

    /**
     * Execute the query and get the first result or throw an exception.
     *
     * @param  array  $columns
     * @return \Illuminate\Database\Eloquent\Model|static
     *
     * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
     */
    public function firstOrFail($columns = ['*'])
    {
        if (! is_null($model = $this->first($columns))) {
            return $model;
        }

        throw (new ModelNotFoundException)->setModel(get_class($this->model));
    }

    /**
     * Execute the query and get the first result or call a callback.
     *
     * @param  \Closure|array  $columns
     * @param  \Closure|null  $callback
     * @return \Illuminate\Database\Eloquent\Model|static|mixed
     */
    public function firstOr($columns = ['*'], Closure $callback = null)
    {
        if ($columns instanceof Closure) {
            $callback = $columns;

            $columns = ['*'];
        }

        if (! is_null($model = $this->first($columns))) {
            return $model;
        }
Arguments
  1. "No query results for model [App\Models\JyhProduct]."
    
Exception message: No query results for model [App\Models\JyhProduct].
/www/wwwroot/testjyh/v2/app/Http/Controllers/JyhSiteController.php
        $recommendProducts = JyhSiteService::recommendedProducts($locale, null, 6);

        return view('jyh.products', [
            'locale' => $locale,
            'settings' => JyhSiteService::settings($locale),
            'modules' => JyhSiteService::pageModuleMap('search', $locale),
            'products' => $products,
            'searchKeyword' => $keyword,
            'recommendProducts' => $recommendProducts,
        ]);
    }

    public function productDetail($id)
    {
        $locale = JyhSiteService::locale();
        $product = JyhProduct::query()
            ->where('id', (int) $id)
            ->where('status', 1)
            ->where('locale', $locale)
            ->firstOrFail();

        return view('jyh.product_detail', [
            'locale' => $locale,
            'settings' => JyhSiteService::settings($locale),
            'modules' => JyhSiteService::pageModuleMap('product_detail', $locale),
            'product' => $product,
            'gallery' => $this->decodeJsonArray($product->gallery_json),
            'recommendProducts' => JyhSiteService::recommendedProducts($locale, $product->id, 4),
        ]);
    }

    public function news(Request $request)
    {
        $locale = JyhSiteService::locale();

        $newsList = JyhNews::query()
            ->where('status', 1)
            ->where('locale', $locale)
            ->orderBy('publish_at', 'desc')
            ->orderBy('id', 'desc')
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Controller.php
    /**
     * Get the middleware assigned to the controller.
     *
     * @return array
     */
    public function getMiddleware()
    {
        return $this->middleware;
    }

    /**
     * Execute an action on the controller.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function callAction($method, $parameters)
    {
        return call_user_func_array([$this, $method], $parameters);
    }

    /**
     * Handle calls to missing methods on the controller.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return mixed
     *
     * @throws \BadMethodCallException
     */
    public function __call($method, $parameters)
    {
        throw new BadMethodCallException(sprintf(
            'Method %s::%s does not exist.', static::class, $method
        ));
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Controller.php
    /**
     * Get the middleware assigned to the controller.
     *
     * @return array
     */
    public function getMiddleware()
    {
        return $this->middleware;
    }

    /**
     * Execute an action on the controller.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function callAction($method, $parameters)
    {
        return call_user_func_array([$this, $method], $parameters);
    }

    /**
     * Handle calls to missing methods on the controller.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return mixed
     *
     * @throws \BadMethodCallException
     */
    public function __call($method, $parameters)
    {
        throw new BadMethodCallException(sprintf(
            'Method %s::%s does not exist.', static::class, $method
        ));
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
    {
        $this->container = $container;
    }

    /**
     * Dispatch a request to a given controller and method.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  mixed  $controller
     * @param  string  $method
     * @return mixed
     */
    public function dispatch(Route $route, $controller, $method)
    {
        $parameters = $this->resolveClassMethodDependencies(
            $route->parametersWithoutNulls(), $controller, $method
        );

        if (method_exists($controller, 'callAction')) {
            return $controller->callAction($method, $parameters);
        }

        return $controller->{$method}(...array_values($parameters));
    }

    /**
     * Get the middleware for the controller instance.
     *
     * @param  \Illuminate\Routing\Controller  $controller
     * @param  string  $method
     * @return array
     */
    public function getMiddleware($controller, $method)
    {
        if (! method_exists($controller, 'getMiddleware')) {
            return [];
        }

        return collect($controller->getMiddleware())->reject(function ($data) use ($method) {
            return static::methodExcludedByOptions($method, $data['options']);
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Route.php
    protected function runCallable()
    {
        $callable = $this->action['uses'];

        return $callable(...array_values($this->resolveMethodDependencies(
            $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses'])
        )));
    }

    /**
     * Run the route action and return the response.
     *
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
     */
    protected function runController()
    {
        return $this->controllerDispatcher()->dispatch(
            $this, $this->getController(), $this->getControllerMethod()
        );
    }

    /**
     * Get the controller instance for the route.
     *
     * @return mixed
     */
    public function getController()
    {
        if (! $this->controller) {
            $class = $this->parseControllerCallback()[0];

            $this->controller = $this->container->make(ltrim($class, '\\'));
        }

        return $this->controller;
    }

    /**
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Route.php
     *
     * @throws \UnexpectedValueException
     */
    protected function parseAction($action)
    {
        return RouteAction::parse($this->uri, $action);
    }

    /**
     * Run the route action and return the response.
     *
     * @return mixed
     */
    public function run()
    {
        $this->container = $this->container ?: new Container;

        try {
            if ($this->isControllerAction()) {
                return $this->runController();
            }

            return $this->runCallable();
        } catch (HttpResponseException $e) {
            return $e->getResponse();
        }
    }

    /**
     * Checks whether the route's action is a controller.
     *
     * @return bool
     */
    protected function isControllerAction()
    {
        return is_string($this->action['uses']);
    }

    /**
     * Run the route action and return the response.
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php
    /**
     * Run the given route within a Stack "onion" instance.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;

        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);

        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
                        ->then(function ($request) use ($route) {
                            return $this->prepareResponse(
                                $request, $route->run()
                            );
                        });
    }

    /**
     * Gather the middleware for the given route with resolved class names.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @return array
     */
    public function gatherRouteMiddleware(Route $route)
    {
        $middleware = collect($route->gatherMiddleware())->map(function ($name) {
            return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
        })->flatten();

        return $this->sortMiddleware($middleware);
    }

    /**
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
use Symfony\Component\Debug\Exception\FatalThrowableError;

/**
 * This extended pipeline catches any exceptions that occur during each slice.
 *
 * The exceptions are converted to HTTP responses for proper middleware handling.
 */
class Pipeline extends BasePipeline
{
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
    protected function prepareDestination(Closure $destination)
    {
        return function ($passable) use ($destination) {
            try {
                return $destination($passable);
            } catch (Exception $e) {
                return $this->handleException($passable, $e);
            } catch (Throwable $e) {
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php
     */
    public function __construct(Registrar $router)
    {
        $this->router = $router;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->router->substituteBindings($route = $request->route());

        $this->router->substituteImplicitBindings($route);

        return $next($request);
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     *
     * @throws \Illuminate\Session\TokenMismatchException
     */
    public function handle($request, Closure $next)
    {
        if (
            $this->isReading($request) ||
            $this->runningUnitTests() ||
            $this->inExceptArray($request) ||
            $this->tokensMatch($request)
        ) {
            return tap($next($request), function ($response) use ($request) {
                if ($this->shouldAddXsrfTokenCookie()) {
                    $this->addCookieToResponse($request, $response);
                }
            });
        }

        throw new TokenMismatchException('CSRF token mismatch.');
    }

    /**
     * Determine if the HTTP request uses a ‘read’ verb.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    protected function isReading($request)
    {
        return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']);
    }

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // If the current session has an "errors" variable bound to it, we will share
        // its value with all view instances so the views can easily access errors
        // without having to bind. An empty bag is set when there aren't errors.
        $this->view->share(
            'errors', $request->session()->get('errors') ?: new ViewErrorBag
        );

        // Putting the errors in the view for every view allows the developer to just
        // assume that some errors are always available, which is convenient since
        // they don't have to continually run checks for the presence of errors.

        return $next($request);
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/app/Http/Middleware/SetSiteLanguage.php
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        $lan = $request->query('lan');

        if ($lan && in_array($lan, ['zh', 'en'], true)) {
            session(['site_language' => $lan]);
        } else {
            $lan = session('site_language');
            if ($lan === null || $lan === '') {
                session(['site_language' => 'zh']);
                $lan = 'zh';
            }
        }

        app()->setLocale($lan);

        return $next($request);
    }
}

 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (! $this->sessionConfigured()) {
            return $next($request);
        }

        // If a session driver has been configured, we will need to start the session here
        // so that the data is ready for an application. Note that the Laravel sessions
        // do not make use of PHP "native" sessions in any way since they are crappy.
        $request->setLaravelSession(
            $session = $this->startSession($request)
        );

        $this->collectGarbage($session);

        $response = $next($request);

        $this->storeCurrentUrl($request, $session);

        $this->addCookieToResponse($response, $session);

        // Again, if the session has been configured we will need to close out the session
        // so that the attributes may be persisted to some storage medium. We will also
        // add the session identifier cookie to the application response headers now.
        $this->saveSession($request);

        return $response;
    }

    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php
     * Create a new CookieQueue instance.
     *
     * @param  \Illuminate\Contracts\Cookie\QueueingFactory  $cookies
     * @return void
     */
    public function __construct(CookieJar $cookies)
    {
        $this->cookies = $cookies;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        foreach ($this->cookies->getQueuedCookies() as $cookie) {
            $response->headers->setCookie($cookie);
        }

        return $response;
    }
}
 
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php
     * Disable encryption for the given cookie name(s).
     *
     * @param  string|array  $name
     * @return void
     */
    public function disableFor($name)
    {
        $this->except = array_merge($this->except, (array) $name);
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handle($request, Closure $next)
    {
        return $this->encrypt($next($this->decrypt($request)));
    }

    /**
     * Decrypt the cookies on the request.
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @return \Symfony\Component\HttpFoundation\Request
     */
    protected function decrypt(Request $request)
    {
        foreach ($request->cookies as $key => $cookie) {
            if ($this->isDisabled($key)) {
                continue;
            }

            try {
                $request->cookies->set($key, $this->decryptCookie($key, $cookie));
            } catch (DecryptException $e) {
                $request->cookies->set($key, null);
            }
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
    public function via($method)
    {
        $this->method = $method;

        return $this;
    }

    /**
     * Run the pipeline with a final destination callback.
     *
     * @param  \Closure  $destination
     * @return mixed
     */
    public function then(Closure $destination)
    {
        $pipeline = array_reduce(
            array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination)
        );

        return $pipeline($this->passable);
    }

    /**
     * Run the pipeline and return the result.
     *
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }

    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;

        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);

        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
                        ->then(function ($request) use ($route) {
                            return $this->prepareResponse(
                                $request, $route->run()
                            );
                        });
    }

    /**
     * Gather the middleware for the given route with resolved class names.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @return array
     */
    public function gatherRouteMiddleware(Route $route)
    {
        $middleware = collect($route->gatherMiddleware())->map(function ($name) {
            return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
        })->flatten();

        return $this->sortMiddleware($middleware);
    }

    /**
     * Sort the given middleware by priority.
     *
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php
        return $route;
    }

    /**
     * Return the response for the given route.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Routing\Route  $route
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    protected function runRoute(Request $request, Route $route)
    {
        $request->setRouteResolver(function () use ($route) {
            return $route;
        });

        $this->events->dispatch(new Events\RouteMatched($route, $request));

        return $this->prepareResponse($request,
            $this->runRouteWithinStack($route, $request)
        );
    }

    /**
     * Run the given route within a Stack "onion" instance.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     */
    protected function runRouteWithinStack(Route $route, Request $request)
    {
        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
                                $this->container->make('middleware.disable') === true;

        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);

        return (new Pipeline($this->container))
                        ->send($request)
                        ->through($middleware)
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    public function dispatch(Request $request)
    {
        $this->currentRequest = $request;

        return $this->dispatchToRoute($request);
    }

    /**
     * Dispatch the request to a route and return the response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    public function dispatchToRoute(Request $request)
    {
        return $this->runRoute($request, $this->findRoute($request));
    }

    /**
     * Find the route matching a given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Routing\Route
     */
    protected function findRoute($request)
    {
        $this->current = $route = $this->routes->match($request);

        $this->container->instance(Route::class, $route);

        return $route;
    }

    /**
     * Return the response for the given route.
     *
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Router.php
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    public function respondWithRoute($name)
    {
        $route = tap($this->routes->getByName($name))->bind($this->currentRequest);

        return $this->runRoute($this->currentRequest, $route);
    }

    /**
     * Dispatch the request to the application.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    public function dispatch(Request $request)
    {
        $this->currentRequest = $request;

        return $this->dispatchToRoute($request);
    }

    /**
     * Dispatch the request to a route and return the response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     */
    public function dispatchToRoute(Request $request)
    {
        return $this->runRoute($request, $this->findRoute($request));
    }

    /**
     * Find the route matching a given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Routing\Route
     */
    protected function findRoute($request)
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     * @return void
     */
    public function bootstrap()
    {
        if (! $this->app->hasBeenBootstrapped()) {
            $this->app->bootstrapWith($this->bootstrappers());
        }
    }

    /**
     * Get the route dispatcher callback.
     *
     * @return \Closure
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);

            return $this->router->dispatch($request);
        };
    }

    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);

        $this->app->terminate();
    }

    /**
     * Call the terminate method on any terminable middleware.
     *
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
use Symfony\Component\Debug\Exception\FatalThrowableError;

/**
 * This extended pipeline catches any exceptions that occur during each slice.
 *
 * The exceptions are converted to HTTP responses for proper middleware handling.
 */
class Pipeline extends BasePipeline
{
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
    protected function prepareDestination(Closure $destination)
    {
        return function ($passable) use ($destination) {
            try {
                return $destination($passable);
            } catch (Exception $e) {
                return $this->handleException($passable, $e);
            } catch (Throwable $e) {
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php

namespace Illuminate\Foundation\Http\Middleware;

use Closure;
use Symfony\Component\HttpFoundation\ParameterBag;

class TransformsRequest
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->clean($request);

        return $next($request);
    }

    /**
     * Clean the request's data.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     */
    protected function clean($request)
    {
        $this->cleanParameterBag($request->query);

        if ($request->isJson()) {
            $this->cleanParameterBag($request->json());
        } elseif ($request->request !== $request->query) {
            $this->cleanParameterBag($request->request);
        }
    }

    /**
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php

namespace Illuminate\Foundation\Http\Middleware;

use Closure;
use Symfony\Component\HttpFoundation\ParameterBag;

class TransformsRequest
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $this->clean($request);

        return $next($request);
    }

    /**
     * Clean the request's data.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     */
    protected function clean($request)
    {
        $this->cleanParameterBag($request->query);

        if ($request->isJson()) {
            $this->cleanParameterBag($request->json());
        } elseif ($request->request !== $request->query) {
            $this->cleanParameterBag($request->request);
        }
    }

    /**
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php
class ValidatePostSize
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     *
     * @throws \Illuminate\Http\Exceptions\PostTooLargeException
     */
    public function handle($request, Closure $next)
    {
        $max = $this->getPostMaxSize();

        if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) {
            throw new PostTooLargeException;
        }

        return $next($request);
    }

    /**
     * Determine the server 'post_max_size' as bytes.
     *
     * @return int
     */
    protected function getPostMaxSize()
    {
        if (is_numeric($postMaxSize = ini_get('post_max_size'))) {
            return (int) $postMaxSize;
        }

        $metric = strtoupper(substr($postMaxSize, -1));
        $postMaxSize = (int) $postMaxSize;

        switch ($metric) {
            case 'K':
                return $postMaxSize * 1024;
            case 'M':
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php
     *
     * @throws \Symfony\Component\HttpKernel\Exception\HttpException
     */
    public function handle($request, Closure $next)
    {
        if ($this->app->isDownForMaintenance()) {
            $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true);

            if (isset($data['allowed']) && IpUtils::checkIp($request->ip(), (array) $data['allowed'])) {
                return $next($request);
            }

            if ($this->inExceptArray($request)) {
                return $next($request);
            }

            throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']);
        }

        return $next($request);
    }

    /**
     * Determine if the request has a URI that should be accessible in maintenance mode.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    protected function inExceptArray($request)
    {
        foreach ($this->except as $except) {
            if ($except !== '/') {
                $except = trim($except, '/');
            }

            if ($request->fullUrlIs($except) || $request->is($except)) {
                return true;
            }
        }

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/fideloper/proxy/src/TrustProxies.php
    {
        $this->config = $config;
    }

    /**
     * Handle an incoming request.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure                 $next
     *
     * @throws \Symfony\Component\HttpKernel\Exception\HttpException
     *
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        $request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests
        $this->setTrustedProxyIpAddresses($request);

        return $next($request);
    }

    /**
     * Sets the trusted proxies on the request to the value of trustedproxy.proxies
     *
     * @param \Illuminate\Http\Request $request
     */
    protected function setTrustedProxyIpAddresses(Request $request)
    {
        $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');

        // Trust any IP address that calls us
        // `**` for backwards compatibility, but is deprecated
        if ($trustedIps === '*' || $trustedIps === '**') {
            return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
        }

        // Support IPs addresses separated by comma
        $trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;

/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
                    // the appropriate method and arguments, returning the results back out.
                    return $pipe($passable, $stack);
                } elseif (! is_object($pipe)) {
                    [$name, $parameters] = $this->parsePipeString($pipe);

                    // If the pipe is a string we will parse the string and resolve the class out
                    // of the dependency injection container. We can then build a callable and
                    // execute the pipe function giving in the parameters that are required.
                    $pipe = $this->getContainer()->make($name);

                    $parameters = array_merge([$passable, $stack], $parameters);
                } else {
                    // If the pipe is already an object we'll just make a callable and pass it to
                    // the pipe as-is. There is no need to do any extra parsing and formatting
                    // since the object we're given was already a fully instantiated object.
                    $parameters = [$passable, $stack];
                }

                $response = method_exists($pipe, $this->method)
                                ? $pipe->{$this->method}(...$parameters)
                                : $pipe(...$parameters);

                return $response instanceof Responsable
                            ? $response->toResponse($this->getContainer()->make(Request::class))
                            : $response;
            };
        };
    }

    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);

        if (is_string($parameters)) {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
                return $this->handleException($passable, new FatalThrowableError($e));
            }
        };
    }

    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    $slice = parent::carry();

                    $callable = $slice($stack, $pipe);

                    return $callable($passable);
                } catch (Exception $e) {
                    return $this->handleException($passable, $e);
                } catch (Throwable $e) {
                    return $this->handleException($passable, new FatalThrowableError($e));
                }
            };
        };
    }

    /**
     * Handle the given exception.
     *
     * @param  mixed  $passable
     * @param  \Exception  $e
     * @return mixed
     *
     * @throws \Exception
     */
    protected function handleException($passable, Exception $e)
    {
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
    public function via($method)
    {
        $this->method = $method;

        return $this;
    }

    /**
     * Run the pipeline with a final destination callback.
     *
     * @param  \Closure  $destination
     * @return mixed
     */
    public function then(Closure $destination)
    {
        $pipeline = array_reduce(
            array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination)
        );

        return $pipeline($this->passable);
    }

    /**
     * Run the pipeline and return the result.
     *
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }

    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
    }

    /**
     * Send the given request through the middleware / router.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    protected function sendRequestThroughRouter($request)
    {
        $this->app->instance('request', $request);

        Facade::clearResolvedInstance('request');

        $this->bootstrap();

        return (new Pipeline($this->app))
                    ->send($request)
                    ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
                    ->then($this->dispatchToRouter());
    }

    /**
     * Bootstrap the application for HTTP requests.
     *
     * @return void
     */
    public function bootstrap()
    {
        if (! $this->app->hasBeenBootstrapped()) {
            $this->app->bootstrapWith($this->bootstrappers());
        }
    }

    /**
     * Get the route dispatcher callback.
     *
     * @return \Closure
     */
    protected function dispatchToRouter()
/www/wwwroot/testjyh/v2/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
            $router->middlewareGroup($key, $middleware);
        }

        foreach ($this->routeMiddleware as $key => $middleware) {
            $router->aliasMiddleware($key, $middleware);
        }
    }

    /**
     * Handle an incoming HTTP request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function handle($request)
    {
        try {
            $request->enableHttpMethodParameterOverride();

            $response = $this->sendRequestThroughRouter($request);
        } catch (Exception $e) {
            $this->reportException($e);

            $response = $this->renderException($request, $e);
        } catch (Throwable $e) {
            $this->reportException($e = new FatalThrowableError($e));

            $response = $this->renderException($request, $e);
        }

        $this->app['events']->dispatch(
            new Events\RequestHandled($request, $response)
        );

        return $response;
    }

    /**
     * Send the given request through the middleware / router.
     *
/www/wwwroot/testjyh/v2/public/index.php
*/

$app = require_once __DIR__.'/../bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Headers', '*');//'utoken,utime,ukey,platform,authorization,Origin, Content-Type, Cookie, Accept, multipart/form-data, application/json,X-Token'
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->send();
$kernel->terminate($request, $response);
 

Environment & details:

Key Value
s
"/product/detail/1"
lan
"en"
empty
empty
empty
empty
Key Value
USER
"www"
HOME
"/home/www"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"gdjyh.net"
PATH_INFO
""
REDIRECT_STATUS
"200"
SERVER_NAME
"gdjyh.net"
SERVER_PORT
"443"
SERVER_ADDR
"172.17.176.251"
REMOTE_PORT
"23592"
REMOTE_ADDR
"216.73.216.212"
SERVER_SOFTWARE
"nginx/1.24.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/www/wwwroot/testjyh/v2/public"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/product/detail/1?lan=en"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
"s=/product/detail/1&lan=en"
SCRIPT_FILENAME
"/www/wwwroot/testjyh/v2/public/index.php"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1776677235.9886
REQUEST_TIME
1776677235
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:o4pwjNqrgLPMqj24tEYORGTSHi/cOAobZPglJSJtmQU="
APP_DEBUG
"true"
APP_URL
"https://business.51baocan.com/"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_DATABASE
"jyh_v2"
DB_USERNAME
"jyh_v2"
DB_PASSWORD
"n8Xs67B3kfSJR56E"
DB_PORT
"3306"
DB_PREFIX
"jyh_"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"redis"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"hkb_test_password"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.exmail.qq.com"
MAIL_PORT
"465"
MAIL_USERNAME
"zyq@xmph.net"
MAIL_PASSWORD
"qiang202"
MAIL_ENCRYPTION
"ssl"
MAIL_FROM_ADDRESS
"zyq@xmph.net"
MAIL_FROM_NAME
"福建尚汇"
RECEIVE_FINISH_PAY_EMAILS
"280594803@qq.com,1358716129@qq.com,cjs@xmph.net,cj@xmph.net"
AWS_ACCESS_KEY_ID
""
AWS_SECRET_ACCESS_KEY
""
AWS_DEFAULT_REGION
"us-east-1"
AWS_BUCKET
""
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
JWT_SECRET
"mziIHDUgy9HMQ8RQYRBlo0hhZjE5Y1tewfj47TPlFP4JyhGbFnX8qYuZEIB2wZSF"
JWT_TTL
"999999"
WECHAT_OFFICIAL_ACCOUNT_APPID
"wxb8d76ccb44ea6117"
WECHAT_OFFICIAL_ACCOUNT_SECRET
"dd611d17fe3560174b76de89d50fec9d"
WECHAT_OFFICIAL_ACCOUNT_TOKEN
""
WECHAT_PAYMENT_APPID
"wxb8d76ccb44ea6117"
WECHAT_PAYMENT_MCH_ID
"1568138991"
WECHAT_PAYMENT_KEY
"9YN8yhkijngtubtrejklr6c85Vl8hbcf"
WECAHT_PAYMENT_NOTIFY_URL
"https://cs.51baocan.com/api/Wxpay2/notify"
REFUND_QUEUE
"false"
MEAL_REMIND
"false"
MENU_UPLOAD_PATH
"app/public/uploads/menu/"
REMOTE_IMAGE_URL
"https://vip.51baocan.com/"
SPLIT_ORDER_DATE
"2020-09-01"
ORDER_EXPIRED
"2"
REDIS_CLIENT
"phpredis"
IS_FIRST_SCRIPT
"false"
WECHAT_MINI_PROGRAM_APPID
"wxb622cc30005792df"
WECHAT_MINI_PROGRAM_SECRET
"85e353d1f50f18dba4edaf3b9342b387"
SMS_ALIYUN_ACCESS_KEY_ID
"LTAI9Zfh49uWTUm7"
SMS_ALIYUN_ACCESS_KEY_SECRET
"97Lo5tf4ma60ve6m3APZsmtaVGSi6t"
MULTIPLE_MEAL_HOST
"https://cs.51baocan.com"
MULTIPLE_MEAL_INDEX
"/api/menu/index"
MULTIPLE_MEAL_ADD
"/api/menu/add"
MULTIPLE_MEAL_BALANCE
"/api/menu/balance"
ALIYUN_ACCESS_ID
"LTAI4GFmNBxB9Ln2ofsAQfqz"
ALIYUN_ACCESS_KEY
"8T2FbUxS24tBBlB8vEy1ALR3di1Prt"
ALIYUN_BUCKET
"styf"
ALIYUN_ENDPOINT
"oss-cn-shenzhen.aliyuncs.com"
ALIYUN_CDN_DOMAIN
""
ALIYUN_SSL
""
ALIYUN_IS_CNAME
""
ALIYUN_DEBUG
""
ALIYUN_IMAGE_URL
"https://styf.oss-cn-shenzhen.aliyuncs.com/"
VERSION
"1.2"
AGENT_AMOUNT_PRICE
"0.01"
AGENT_INST_PRICE
"0.01"
PAY_NODE_ENV
"DEV"
INST_CANCEL_AUTH
"1660,6585"
Key Value
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:o4pwjNqrgLPMqj24tEYORGTSHi/cOAobZPglJSJtmQU="
APP_DEBUG
"true"
APP_URL
"https://business.51baocan.com/"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_DATABASE
"jyh_v2"
DB_USERNAME
"jyh_v2"
DB_PASSWORD
"n8Xs67B3kfSJR56E"
DB_PORT
"3306"
DB_PREFIX
"jyh_"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"redis"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"hkb_test_password"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.exmail.qq.com"
MAIL_PORT
"465"
MAIL_USERNAME
"zyq@xmph.net"
MAIL_PASSWORD
"qiang202"
MAIL_ENCRYPTION
"ssl"
MAIL_FROM_ADDRESS
"zyq@xmph.net"
MAIL_FROM_NAME
"福建尚汇"
RECEIVE_FINISH_PAY_EMAILS
"280594803@qq.com,1358716129@qq.com,cjs@xmph.net,cj@xmph.net"
AWS_ACCESS_KEY_ID
""
AWS_SECRET_ACCESS_KEY
""
AWS_DEFAULT_REGION
"us-east-1"
AWS_BUCKET
""
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
JWT_SECRET
"mziIHDUgy9HMQ8RQYRBlo0hhZjE5Y1tewfj47TPlFP4JyhGbFnX8qYuZEIB2wZSF"
JWT_TTL
"999999"
WECHAT_OFFICIAL_ACCOUNT_APPID
"wxb8d76ccb44ea6117"
WECHAT_OFFICIAL_ACCOUNT_SECRET
"dd611d17fe3560174b76de89d50fec9d"
WECHAT_OFFICIAL_ACCOUNT_TOKEN
""
WECHAT_PAYMENT_APPID
"wxb8d76ccb44ea6117"
WECHAT_PAYMENT_MCH_ID
"1568138991"
WECHAT_PAYMENT_KEY
"9YN8yhkijngtubtrejklr6c85Vl8hbcf"
WECAHT_PAYMENT_NOTIFY_URL
"https://cs.51baocan.com/api/Wxpay2/notify"
REFUND_QUEUE
"false"
MEAL_REMIND
"false"
MENU_UPLOAD_PATH
"app/public/uploads/menu/"
REMOTE_IMAGE_URL
"https://vip.51baocan.com/"
SPLIT_ORDER_DATE
"2020-09-01"
ORDER_EXPIRED
"2"
REDIS_CLIENT
"phpredis"
IS_FIRST_SCRIPT
"false"
WECHAT_MINI_PROGRAM_APPID
"wxb622cc30005792df"
WECHAT_MINI_PROGRAM_SECRET
"85e353d1f50f18dba4edaf3b9342b387"
SMS_ALIYUN_ACCESS_KEY_ID
"LTAI9Zfh49uWTUm7"
SMS_ALIYUN_ACCESS_KEY_SECRET
"97Lo5tf4ma60ve6m3APZsmtaVGSi6t"
MULTIPLE_MEAL_HOST
"https://cs.51baocan.com"
MULTIPLE_MEAL_INDEX
"/api/menu/index"
MULTIPLE_MEAL_ADD
"/api/menu/add"
MULTIPLE_MEAL_BALANCE
"/api/menu/balance"
ALIYUN_ACCESS_ID
"LTAI4GFmNBxB9Ln2ofsAQfqz"
ALIYUN_ACCESS_KEY
"8T2FbUxS24tBBlB8vEy1ALR3di1Prt"
ALIYUN_BUCKET
"styf"
ALIYUN_ENDPOINT
"oss-cn-shenzhen.aliyuncs.com"
ALIYUN_CDN_DOMAIN
""
ALIYUN_SSL
""
ALIYUN_IS_CNAME
""
ALIYUN_DEBUG
""
ALIYUN_IMAGE_URL
"https://styf.oss-cn-shenzhen.aliyuncs.com/"
VERSION
"1.2"
AGENT_AMOUNT_PRICE
"0.01"
AGENT_INST_PRICE
"0.01"
PAY_NODE_ENV
"DEV"
INST_CANCEL_AUTH
"1660,6585"
0. Whoops\Handler\PrettyPageHandler