Как вы знаете, symfony / http-client требуется во многих пакетах, но он выдает ошибку, поэтому я удалил их, чтобы проверить meilisearch, чем установленный http / guzzle6-adapter, и все, похоже, работает нормально, чем я установил пакеты, которые я удалил они установили symfony / http-client, и, как я предполагаю, laravel отдает ему приоритет, и я снова получаю эту ошибку. Я также попытался установить symfony / http-client nyholm / psr7, как вы предложили в readme, но все еще получаю сообщение об ошибке. Как вы думаете, какое решение для этого будет.
Также пытались обновить guzzle до 7.0, но все еще не работает должным образом, я думаю, что есть что-то с версией php, какое будет ваше решение?
С использованием:
Laravel: 6.18.40
PHP: 7.4.5
Любой запрос к mailisearch с использованием symfony / http-client возвращает ошибку:
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
У меня нет проблем с использованием symfony/http-client
с nyholm/psr7
laravel 6.18.40 и php 7.4.3
обязательно используйте "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();
Но как вы сказали:
Любой запрос к mailisearch с использованием symfony / http-client возвращает ошибку:
Поэтому я не думаю, что ошибка возникла из-за вашего звонка.
@shokme да, вы правы, дело не в звонке, я пробовал несколько комбинаций в своем проекте, так что guzzle 6 с адаптером работает хорошо, после очистки некоторых пакетов guzzle 7 начал нормально работать со всей конфигурацией и mailisearch, но symfony / http-client все еще остается проблемой для меня. Если у меня будет какое-то решение, запишу. Спасибо за ваше время.
Хорошо, извините, что больше не могу вам помочь.
возможно, выполнив некоторые 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
source и обнаружил, что их resolveUrl()
вылетает без "правильного" имени URL, поэтому я изменил свой 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
source и обнаружил, что ихresolveUrl()
вылетает без "правильного" имени URL, поэтому я изменил свойMEILISEARCH_HOST=meilisearch
наMEILISEARCH_HOST=http://meilisearch:7070
и теперь все оно работает. Еще раз спасибо, я остаюсь с meilisearch и закрываю проблему.