如您所知,许多软件包都需要symfony/http-client ,但它给了我错误,因此我将它们删除以测试 meilisearch,而不是安装了http/guzzle6-adapter,并且一切似乎都比我安装已删除的软件包要好他们安装了 symfony/http-client ,因为我猜 laravel 优先考虑它,我再次收到此错误。 我还尝试按照您在自述文件中的建议安装symfony/http-client nyholm/psr7 ,但仍然出现错误。 你认为什么将是它的解决方案。
也尝试将 guzzle 更新到 7.0 但仍然没有按预期工作,我认为 php 版本有什么问题,您的解决方案是什么?
使用:
Laravel: 6.18.40
PHP: 7.4.5
使用symfony/http-client对 mailisearch 的任何请求都会返回错误:
ErrorException : Trying to access array offset on value of type null
at /var/www/vendor/symfony/http-client/HttpClientTrait.php:417
413| $url['query'] = '?'.self::mergeQueryString(substr($url['query'] ?? '', 1), $queryDefaults, false);
414| }
415| }
416|
> 417| $url['scheme'] = $base['scheme'];
418| }
419|
420| if ('' === ($url['path'] ?? '')) {
421| $url['path'] = '/';
Exception trace:
1 Illuminate\Foundation\Bootstrap\HandleExceptions::handleError()
/var/www/vendor/symfony/http-client/HttpClientTrait.php:417
2 Symfony\Component\HttpClient\CurlHttpClient::resolveUrl()
/var/www/vendor/symfony/http-client/HttpClientTrait.php:141
我在nyholm/psr7
使用symfony/http-client
没有问题
Laravel 6.18.40 和 php 7.4.3
一定要在你的composer.json
使用"meilisearch/meilisearch-laravel-scout": "^0.12.0"
composer.json
@shokme感谢您的反馈,但我正在使用"meilisearch/meilisearch-laravel-scout": "^0.12.0"
"symfony/http-client": "^5.1"
和"nyholm/psr7": "^1.3"
你有相同的版本吗?
是的,一切都一样。
但我打了一个非常简单的电话
$movies = Movie::search('Ready Player One')->raw();
但正如你所说:
使用 symfony/http-client 对 mailisearch 的任何请求都会返回错误:
所以我不认为错误来自你的电话。
@shokme是的,你说得对,这与调用无关,我在我的项目中尝试了几种组合,因此 guzzle 6 和适配器运行良好,在清除了一些包后,guzzle 7 开始在整个配置和 mailisearch 中正常工作,但 symfony/http-client 仍然对我来说是个问题。 如果我有任何解决方案会写下来。 谢谢你的时间。
好的,很抱歉不能为您提供进一步的帮助。
也许在symfony/http-client/HttpClientTrait.php:417
附近做一些dd($url)
symfony/http-client/HttpClientTrait.php:417
可以给你一些提示。
@shokme仍然非常感谢时间和帮助,我们俩的相同配置让我希望我有什么错误,所以我会继续调查再次感谢。
@shokme所以我发现我的问题出在MEILISEARCH_HOST=meilisearch
,它与guzzle 6,7
和php-http/curl-client
完美配合,当只有symfony/http-client
崩溃时,这让我发疯。 所以我检查了vendor/symfony/http-client/HttpClientTrait.php
来源,发现他们的resolveUrl()
在没有“正确”网址名称的情况下崩溃了,所以我将MEILISEARCH_HOST=meilisearch
更改MEILISEARCH_HOST=http://meilisearch:7070
,现在就是这样有用。 再次感谢我留在 meilisearch 和关闭问题。
感谢您的调查@JexPY! 确保它对您之后的用户有帮助👍
最有用的评论
@shokme所以我发现我的问题出在
MEILISEARCH_HOST=meilisearch
,它与guzzle 6,7
和php-http/curl-client
完美配合,当只有symfony/http-client
崩溃时,这让我发疯。 所以我检查了vendor/symfony/http-client/HttpClientTrait.php
来源,发现他们的resolveUrl()
在没有“正确”网址名称的情况下崩溃了,所以我将MEILISEARCH_HOST=meilisearch
更改MEILISEARCH_HOST=http://meilisearch:7070
,现在就是这样有用。 再次感谢我留在 meilisearch 和关闭问题。