我正在使用Laravel 5.6.*和Laravel Scout ^7.1与Algolia进行一个项目,我刚刚安装了Guzzle 7.0。
Scout和Algolia以前工作得很好,但现在当我试图保存一个模型时,我在Sentry中遇到了一个错误,看起来像这样:
SymfonyComponentDebugExceptionFatalThrowableError
Undefined class constant 'VERSION'
通过观察《哨兵》中的细节,我发现这与Guzzle有关。错误源自文件:
/vendor/algolia/algoliasearch-client-php/src/Support/UserAgent.php in AlgoliaAlgoliaSearchSupportUserAgent::getDefaultSegments at line 50
代码看起来是这样的:
if (interface_exists('GuzzleHttpClientInterface')) {
$segments['Guzzle'] = GuzzleHttpClientInterface::VERSION;
}
GuzzleHttpClientInterface::VERSION
似乎是导致错误的原因。不知道该怎么办。我是否安装了不兼容版本的Guzzle或其他什么?我可以配置Scout告诉它不要尝试使用Guzzle,并默认为我安装它之前它正在做的任何事情吗?
编辑:我想如果我更新Scout可能会解决这个问题,所以我运行了composer update laravel/scout
。不过还是犯了同样的错误。
第二版:继续前进,刚刚用Composer更新了所有内容。这个错误现在似乎已经解决了。只是重新创建了它,没有再次出现错误。
请参阅原始文章中的第二次编辑。Composer更新全部修复了问题。