Meilisearch-laravel-scout: symfony/http 客户端的错误

创建于 2020-09-26  ·  8评论  ·  资料来源: meilisearch/meilisearch-laravel-scout

如您所知,许多软件包都需要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

最有用的评论

@shokme所以我发现我的问题出在MEILISEARCH_HOST=meilisearch ,它与guzzle 6,7php-http/curl-client完美配合,当只有symfony/http-client崩溃时,这让我发疯。 所以我检查了vendor/symfony/http-client/HttpClientTrait.php来源,发现他们的resolveUrl()在没有“正确”网址名称的情况下崩溃了,所以我将MEILISEARCH_HOST=meilisearch更改MEILISEARCH_HOST=http://meilisearch:7070 ,现在就是这样有用。 再次感谢我留在 meilisearch 和关闭问题。

所有8条评论

我在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,7php-http/curl-client完美配合,当只有symfony/http-client崩溃时,这让我发疯。 所以我检查了vendor/symfony/http-client/HttpClientTrait.php来源,发现他们的resolveUrl()在没有“正确”网址名称的情况下崩溃了,所以我将MEILISEARCH_HOST=meilisearch更改MEILISEARCH_HOST=http://meilisearch:7070 ,现在就是这样有用。 再次感谢我留在 meilisearch 和关闭问题。

感谢您的调查@JexPY! 确保它对您之后的用户有帮助👍

此页面是否有帮助?
0 / 5 - 0 等级