^ think\exception\InvalidArgumentException {#280
#message: "only array cache can be push"
#code: 0
#file: "/www/vendor/topthink/framework/src/think/cache/Driver.php"
#line: 119
trace: {
/www/vendor/topthink/framework/src/think/cache/Driver.php:119 {
think\cache\Driver->push(string $name, $value): void …
› if (!is_array($item)) {
› throw new InvalidArgumentException('only array cache can be push');
› }
}
/www/vendor/topthink/framework/src/think/cache/Driver.php:142 {
think\cache\Driver->append(string $name, $value): void …
› {
› $this->push($name, $value);
› }
}
/www/vendor/topthink/framework/src/think/cache/TagSet.php:73 {
think\cache\TagSet->append(string $name): void …
› $key = $this->handler->getTagKey($tag);
› $this->handler->append($key, $name);
› }
}
/www/vendor/topthink/framework/src/think/cache/TagSet.php:109 {
think\cache\TagSet->remember(string $name, $value, $expire = null) …
›
› $this->append($name);
›
}
/www/app/common/model/Addon.php:78 {
app\common\model\Addon::getModels(): Collection …
› // 缓存读取每次都会读取文件, 所以还是需要自己用变量保存
› self::$cachedModels = Cache::tag(static::class)->remember(static::class.'/models', function () {
› return self::order('sort, slug')->select();
}
/www/app/common/model/Addon.php:99 {
app\common\model\Addon::getInstalledAddons() …
› } else { // 不启用分站点配置时, 所有插件配置数据的 site_id 都是 0
› $addons = self::getModels()->where('site_id', 0)->dictionary(null, $slug);
› }
}
/www/app/common/addon/AddonHandler.php:55 {
app\common\addon\AddonHandler->getAllAddons($refresh = false): array …
› $this->addons = [];
› $addonModels = Addon::getInstalledAddons();
› foreach ($addonModels as $addon) {
}
/www/app/common/addon/AddonHandler.php:148 {
app\common\addon\AddonHandler->loadAddons() …
› // 调用一次 getAllAddon 方法获取实例化
› $this->getAllAddons();
› foreach ($this->addons as $addon) {
}
/www/app/common/addon/AddonServiceProvider.php:23 {
app\common\addon\AddonServiceProvider->app\common\addon\{closure} …
› $addon = $this->app->addon;
› $addon->loadAddons();
› });
}
/www/vendor/topthink/framework/src/think/Container.php:294 {
think\Container->invokeFunction($function, array $vars = []) …
›
› return $function(...$args);
› }
}
/www/vendor/topthink/framework/src/think/Container.php:358 {
think\Container->invoke($callable, array $vars = [], bool $accessible = false) …
› if ($callable instanceof Closure) {
› return $this->invokeFunction($callable, $vars);
› } elseif (is_string($callable) && false === strpos($callable, '::')) {
}
/www/vendor/topthink/framework/src/think/Event.php:269 {
think\Event->dispatch($event, $params = null) …
›
› return $this->app->invoke($call, [$params]);
› }
}
/www/vendor/topthink/framework/src/think/Event.php:230 {
think\Event->trigger($event, $params = null, bool $once = false) …
› foreach ($listeners as $key => $listener) {
› $result[$key] = $this->dispatch($listener, $params);
›
}
think\Event->trigger() {}
/www/vendor/topthink/framework/src/think/Facade.php:96 {
think\Facade::__callStatic($method, $params) …
› {
› return call_user_func_array([static::createFacade(), $method], $params);
› }
}
/www/app/common.php:55 {
event($event, $args = null) …
› trace($info, 'event');
› return Event::trigger($event, $args);
› }
}
/www/app/common/middleware/SiteCheck.php:158 {
app\common\middleware\SiteCheck::bindSite(Site $site) …
› // 触发 SiteCheckedEvent 事件.
› event(SiteCheckedEvent::class);
› }
}
/www/app/common/middleware/SiteCheck.php:117 {
app\common\middleware\SiteCheck->handle(Request $request, Closure $next) …
›
› self::bindSite($this->site);
› // 检查是否开启了强制 HTTPS
}
app\common\middleware\SiteCheck->handle() {}
/www/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/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/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/app/common/middleware/InstallGuide.php:54 {
app\common\middleware\InstallGuide->handle(Request $request, Closure $next) …
› */
› $response = $next($request);
›
}
app\common\middleware\InstallGuide->handle() {}
/www/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/vendor/topthink/think-trace/src/TraceDebug.php:71 {
think\trace\TraceDebug->handle($request, Closure $next) …
›
› $response = $next($request);
›
}
think\trace\TraceDebug->handle() {}
/www/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/app/common/middleware/JsonTrace.php:37 {
app\common\middleware\JsonTrace->handle($request, Closure $next) …
›
› $response = $next($request);
›
}
app\common\middleware\JsonTrace->handle() {}
/www/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/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/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/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/vendor/topthink/framework/src/think/Middleware.php:142 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
}
/www/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
}
/www/vendor/topthink/framework/src/think/Pipeline.php:66 {
think\Pipeline->then(Closure $destination) …
›
› return $pipeline($this->passable);
› }
}
/www/vendor/topthink/framework/src/think/Http.php:205 {
think\Http->runWithRequest(Request $request) …
› ->send($request)
› ->then(function ($request) {
› return $this->dispatchToRoute($request);
}
/www/vendor/topthink/framework/src/think/Http.php:170 {
think\Http->run(Request $request = null): Response …
› try {
› $response = $this->runWithRequest($request);
› } catch (Throwable $e) {
}
/www/public/index.php:22 {
›
› $response = $http->run();
›
}
}
}