首页 > 解决方案 > 安装 Guzzle 后 Laravel Scout 错误“未定义的类常量 'VERSION'”

问题描述

我正在使用 Laravel 5.6.* 和 Laravel Scout ^7.1 和 Algolia 进行项目,我刚刚安装了 Guzzle 7.0。

Scout 和 Algolia 以前工作正常,但现在当我尝试保存模型时,我在 Sentry 中遇到如下错误:

Symfony\Component\Debug\Exception\FatalThrowableError
Undefined class constant 'VERSION'

通过查看 Sentry 中的细节,我发现这与 Guzzle 有关。错误源于文件:

/vendor/algolia/algoliasearch-client-php/src/Support/UserAgent.php in Algolia\AlgoliaSearch\Support\UserAgent::getDefaultSegments at line 50

代码如下所示:

if (interface_exists('\GuzzleHttp\ClientInterface')) {
    $segments['Guzzle'] = \GuzzleHttp\ClientInterface::VERSION;
}

\GuzzleHttp\ClientInterface::VERSION似乎是导致错误的原因。不知道该怎么做。我安装了不兼容的 Guzzle 版本吗?我可以将 Scout 配置为告诉它不要尝试使用 Guzzle,并在我安装它之前默认它正在做的事情吗?

编辑:也许我想如果我更新 Scout 可能会解决这个问题,所以我运行了一个composer update laravel/scout. 虽然仍然有同样的错误。

编辑 2:继续使用 Composer 更新所有内容。这个错误现在似乎已解决。刚刚重新创建它并没有再次收到错误。

标签: phplaravelguzzlelaravel-scout

解决方案


请参阅原始帖子中的第二个编辑。作曲家更新全部解决了这个问题。


推荐阅读