ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
看了源码,是因为这段代码导致的错误,php7.4强制校验对象为null时不可进行数组操作,因此引发了上面的这个 报错信息。 /** * Register a view file namespace. * * @param string|array $path * @param string $namespace * @return void */ protected function loadViewsFrom($path, $namespace) { if (is_array($this->app->config['view']['paths'])) { foreach ($this->app->config['view']['paths'] as $viewPath) { if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) { $this->app['view']->addNamespace($namespace, $appPath); } } } $this->app['view']->addNamespace($namespace, $path); } $this->app->config['view']['paths'] 这个view不存在时为 null,所以就报错了,php7.4以下没有强制检查,所以正常能过。 但是这个代码是在 vendor 中的,没法修改。 解决方案: 因此想了一个变通的办法,在 /bootstrap/app.php 中完成$app加载时,塞入一个 view对象($app->configure('view')),临时解决这问题。 ``` $app = new Laravel\Lumen\Application( realpath(__DIR__.'/../') ); ``` ``` //此处为增加的代码 if(version_compare(PHP_VERSION,'5.4.0','>=')){ $app->configure('view'); //bug fixd :In ServiceProvider.php line 84 } ``` 希望能帮助到大家,这问题折腾了一个下午。