^ TypeError {#517
  #message: "Argument 1 passed to think\View::fetch() must be of the type string, null given"
  #code: 0
  #file: "/www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/View.php"
  #line: 87
  trace: {
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/View.php:87 {
      think\View->fetch(string $template = '', array $vars = []): string …
      ›  */public function fetch(string $template = '', array $vars = []): string{
    }
    think\View->fetch() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Facade.php:96 {
      think\Facade::__callStatic($method, $params) …
      › {    return call_user_func_array([static::createFacade(), $method], $params);}
    }
    /www/wwwroot/topgenebio.com/app/addon/cms/index/controller/Cms.php:92 {
      app\addon\cms\index\controller\Cms->channel(Channel $channel) …
      ›     View::assign('ch', $channel);    return View::fetch($tpl);}
    }
    app\addon\cms\index\controller\Cms->channel() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Container.php:344 {
      think\Container->invokeReflectMethod($instance, $reflect, array $vars = []) …
      › 
      ›     return $reflect->invokeArgs($instance, $args);}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php:110 {
      think\route\dispatch\Controller->think\route\dispatch\{closure} …
      › 
      › $data = $this->app->invokeReflectMethod($instance, $reflect, $vars);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:59 {
      think\Pipeline->think\{closure} …
      › try {    return $destination($passable);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/addon/cms/index/middleware/HandleChannelRequest.php:81 {
      app\addon\cms\index\middleware\HandleChannelRequest->handle($request, Closure $next) …
      › /** @var Response */$response = $next($request);$response->allowCache($allowCache);
    }
    app\addon\cms\index\middleware\HandleChannelRequest->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php:113 {
      think\route\dispatch\Controller->exec() …
      ›             return $this->autoResponse($data);        });}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/route/Dispatch.php:90 {
      think\route\Dispatch->run(): Response …
      › 
      › $data = $this->exec();return $this->autoResponse($data);
    }
    /www/wwwroot/topgenebio.com/app/common/Route.php:83 {
      app\common\Route->app\common\{closure} …
      › // 可以考虑增加 beforedispatch 和 afterdispatch 事件...$response = $dispatch->run();return $response;
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:59 {
      think\Pipeline->think\{closure} …
      › try {    return $destination($passable);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
    }
    /www/wwwroot/topgenebio.com/app/common/Route.php:85 {
      app\common\Route->app\common\{closure} …
      ›             return $response;        });});
    }
    /www/wwwroot/topgenebio.com/app/common/addon/AddonDispatch.php:117 {
      app\common\addon\AddonDispatch->app\common\addon\{closure} …
      › ->then(function () use ($callback) {    return $callback();});
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:59 {
      think\Pipeline->think\{closure} …
      › try {    return $destination($passable);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
    }
    /www/wwwroot/topgenebio.com/app/common/addon/AddonDispatch.php:118 {
      app\common\addon\AddonDispatch->app\common\addon\{closure} …
      ›             return $callback();        });});
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:59 {
      think\Pipeline->think\{closure} …
      › try {    return $destination($passable);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/index/middleware/IndexAppInit.php:84 {
      app\index\middleware\IndexAppInit->handle(Request $request, Closure $next) …
      › /** @var Response */$res = $next($request);event(new IndexDoneEvent($res));
    }
    app\index\middleware\IndexAppInit->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/RequestCache.php:101 {
      app\common\middleware\RequestCache->handle($request, Closure $next, $cache = null) …
      › /** @var Response */$response = $next($request);}
    app\common\middleware\RequestCache->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/VisitCallback.php:179 {
      app\common\middleware\VisitCallback->handle(Request $request, Closure $next) …
      ›  */$response = $next($request);}
    app\common\middleware\VisitCallback->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/ResponseHandler.php:33 {
      app\common\middleware\ResponseHandler->handle(Request $request, Closure $next) …
      ›  */$response = $next($request);}
    app\common\middleware\ResponseHandler->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/think-throttle/src/Throttle.php:141 {
      think\middleware\Throttle->handle(Request $request, Closure $next, array $params = []): Response …
      › }$response = $next($request);if (200 <= $response->getCode() && 300 > $response->getCode() && $this->config['visit_enable_show_rate_limit']) {
    }
    think\middleware\Throttle->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
    }
    /www/wwwroot/topgenebio.com/app/common/addon/AddonDispatch.php:119 {
      app\common\addon\AddonDispatch->handleMiddleware(Closure $callback) …
      ›                 });        });} else {
    }
    /www/wwwroot/topgenebio.com/app/common/Route.php:86 {
      app\common\Route->dispatch(Request $request, $withRoute = true) …
      ›             });    });} elseif (isset($param['app'])) { // 对于不是在应用目录下绑定的路由, 需要用 app 参数来指定应用
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Http.php:216 {
      think\Http->dispatchToRoute($request) …
      › 
      ›     return $this->app->route->dispatch($request, $withRoute);}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Http.php:206 {
      think\Http->think\{closure} …
      › ->then(function ($request) {    return $this->dispatchToRoute($request);});
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:59 {
      think\Pipeline->think\{closure} …
      › try {    return $destination($passable);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/think-multi-app/src/MultiApp.php:45 {
      think\app\MultiApp->handle($request, Closure $next) …
      › if (!$this->parseMultiApp()) {    return $next($request);}
    }
    think\app\MultiApp->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/LanguageCheck.php:23 {
      app\common\middleware\LanguageCheck->handle(Request $request, Closure $next) …
      › 
      › $response = $next($request);return $response;
    }
    app\common\middleware\LanguageCheck->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/SiteCheck.php:124 {
      app\common\middleware\SiteCheck->handle(Request $request, Closure $next) …
      › }$response = $next($request);return $response;
    }
    app\common\middleware\SiteCheck->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/AppStart.php:20 {
      app\common\middleware\AppStart->handle(Request $request, Closure $next) …
      › event(new AppStartEvent());$response = $next($request);// 触发 AppDoneEvent
    }
    app\common\middleware\AppStart->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/InstallGuide.php:54 {
      app\common\middleware\InstallGuide->handle(Request $request, Closure $next) …
      ›  */$response = $next($request);}
    app\common\middleware\InstallGuide->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/think-trace/src/TraceDebug.php:71 {
      think\trace\TraceDebug->handle($request, Closure $next) …
      › 
      › $response = $next($request);}
    think\trace\TraceDebug->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/JsonTrace.php:37 {
      app\common\middleware\JsonTrace->handle($request, Closure $next) …
      › 
      › $response = $next($request);}
    app\common\middleware\JsonTrace->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/app/common/middleware/SessionDebugHandler.php:22 {
      app\common\middleware\SessionDebugHandler->handle(Request $request, Closure $next) …
      › 
      › $response = $next($request);return $response;
    }
    app\common\middleware\SessionDebugHandler->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/middleware/SessionInit.php:67 {
      think\middleware\SessionInit->handle($request, Closure $next) …
      › /** @var Response $response */$response = $next($request);}
    think\middleware\SessionInit->handle() {}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }$response = call_user_func($call, $request, $next, ...$params);}
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {    return $pipe($passable, $stack);} catch (Throwable | Exception $e) {
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Http.php:207 {
      think\Http->runWithRequest(Request $request) …
      ›             return $this->dispatchToRoute($request);        });}
    }
    /www/wwwroot/topgenebio.com/vendor/topthink/framework/src/think/Http.php:170 {
      think\Http->run(Request $request = null): Response …
      › try {    $response = $this->runWithRequest($request);} catch (Throwable $e) {
    }
    /www/wwwroot/topgenebio.com/public/index.php:22 {
      › 
      › $response = $http->run();}
  }
}