Como você sabe, o symfony / http-client é necessário em muitos pacotes, mas ele estava me dando o erro, então eu os removi para testar meilisearch do que instalei http / guzzle6-adapter e tudo parece funcionar bem do que instalei os pacotes que removi eles instalaram o symfony / http-client e como eu acho que o laravel dá prioridade a ele, estou recebendo este erro novamente. Eu também tentei instalar symfony / http-client nyholm / psr7 como você sugeriu no leia-me, mas ainda obtive o erro. O que você acha qual será a solução para isso.
Também tentei atualizar o guzzle para 7.0 mas ainda não está funcionando como o esperado, acho que há algo com a versão php qual será a sua solução?
Usando:
Laravel: 6.18.40
PHP: 7.4.5
Qualquer solicitação de mailisearch usando symfony / http-client retorna o erro:
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
Não tenho problema em usar symfony/http-client
com nyholm/psr7
laravel 6.18.40 e php 7.4.3
certifique-se de usar "meilisearch/meilisearch-laravel-scout": "^0.12.0"
em seu composer.json
@shokme Obrigado pelo feedback, mas estou usando "meilisearch/meilisearch-laravel-scout": "^0.12.0"
"symfony/http-client": "^5.1"
e
"nyholm/psr7": "^1.3"
Você tem as mesmas versões?
sim, tudo é igual.
Mas eu faço uma ligação muito simples
$movies = Movie::search('Ready Player One')->raw();
Mas como você disse:
Qualquer solicitação de mailisearch usando symfony / http-client retorna o erro:
Portanto, não acho que o erro tenha vindo da sua ligação.
@shokme sim, você está certo, isso não é sobre a chamada, eu tentei várias combinações em meu projeto, então o guzzle 6 com adaptador funciona bem, depois de limpar alguns pacotes o guzzle 7 começou a funcionar bem com config e mailisearch inteiros, mas symfony / http-client ainda continua sendo um problema para mim. Se eu tiver alguma solução vou anotar. Obrigado pelo seu tempo.
Ok, lamento não poder ajudá-lo mais.
talvez fazer dd($url)
torno de symfony/http-client/HttpClientTrait.php:417
possa lhe mostrar algumas dicas.
@shokme Ainda assim, muito obrigado pelo tempo e ajuda, a mesma configuração que nós dois temos me dá esperanças de que eu tenha algo errado, então vou continuar a investigação, obrigado novamente.
@shokme Então descobri que meu problema era com a configuração do docker e a variável env. Eu tinha MEILISEARCH_HOST=meilisearch
em meu env que estava funcionando perfeitamente com guzzle 6,7
e php-http/curl-client
, que estava me deixando louco quando apenas symfony/http-client
estava quebrando. Então, verifiquei a fonte de vendor/symfony/http-client/HttpClientTrait.php
e descobri que seu resolveUrl()
estava travando sem o nome de url "adequado", então mudei meu MEILISEARCH_HOST=meilisearch
para MEILISEARCH_HOST=http://meilisearch:7070
e é isso agora funciona. Obrigado mais uma vez, vou ficar com meilisearch e encerrar o problema.
Obrigado pela sua investigação @JexPY! Certifique-se de que será útil para os usuários que vierem atrás de você 👍
Comentários muito úteis
@shokme Então descobri que meu problema era com a configuração do docker e a variável env. Eu tinha
MEILISEARCH_HOST=meilisearch
em meu env que estava funcionando perfeitamente comguzzle 6,7
ephp-http/curl-client
, que estava me deixando louco quando apenassymfony/http-client
estava quebrando. Então, verifiquei a fonte devendor/symfony/http-client/HttpClientTrait.php
e descobri que seuresolveUrl()
estava travando sem o nome de url "adequado", então mudei meuMEILISEARCH_HOST=meilisearch
paraMEILISEARCH_HOST=http://meilisearch:7070
e é isso agora funciona. Obrigado mais uma vez, vou ficar com meilisearch e encerrar o problema.