Meilisearch-laravel-scout: Bug avec symfony/http-client

Créé le 26 sept. 2020  ·  8Commentaires  ·  Source: meilisearch/meilisearch-laravel-scout

Comme vous le savez, symfony/http-client est requis dans de nombreux packages, mais cela me donnait l'erreur, je les ai donc supprimés pour tester meilisearch plutôt que d'installer http/guzzle6-adapter et tout semble fonctionner correctement. ils ont installé symfony/http-client et comme je suppose que laravel lui donne la priorité et je reçois à nouveau cette erreur. J'ai également essayé d'installer symfony/http-client nyholm/psr7 comme vous l'avez suggéré dans le fichier readme mais

J'ai également essayé de mettre à jour Guzzle vers 7.0 mais ne fonctionne toujours pas comme prévu, je pense qu'il y a quelque chose avec la version php, quelle sera votre solution?

À l'aide de:
Laravel : 6.18.40
PHP : 7.4.5

Toute demande de mailisearch utilisant symfony/http-client renvoie l'erreur :

   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

Commentaire le plus utile

@shokme J'ai donc découvert que mon problème était lié à la configuration de docker et à la variable env. J'avais MEILISEARCH_HOST=meilisearch dans mon environnement qui fonctionnait parfaitement avec guzzle 6,7 et php-http/curl-client , ça me rendait fou quand seulement symfony/http-client plantait. J'ai donc vérifié la source de vendor/symfony/http-client/HttpClientTrait.php et j'ai découvert que leur resolveUrl() plantait sans nom d'URL "correct", alors j'ai changé mon MEILISEARCH_HOST=meilisearch en MEILISEARCH_HOST=http://meilisearch:7070 et c'est tout maintenant Ça marche. Merci encore, je reste avec meilisearch et le problème de fermeture.

Tous les 8 commentaires

Je n'ai aucun problème à utiliser symfony/http-client avec nyholm/psr7
laravel 6.18.40 et php 7.4.3
assurez-vous d'utiliser "meilisearch/meilisearch-laravel-scout": "^0.12.0" dans votre composer.json

@shokme Merci pour vos commentaires mais j'utilise "meilisearch/meilisearch-laravel-scout": "^0.12.0"
"symfony/http-client": "^5.1"
et
"nyholm/psr7": "^1.3"
Vous avez les mêmes versions ?

oui tout est pareil.

Mais je fais un appel très simple

$movies = Movie::search('Ready Player One')->raw();

Mais comme tu dis :

Toute demande de mailisearch utilisant symfony/http-client renvoie l'erreur :

Donc je ne pense pas que l'erreur vienne de votre appel.

@shokme oui, vous avez raison, ce n'est pas à propos de l'appel, j'ai essayé plusieurs combinaisons dans mon projet, donc guzzle 6 avec adaptateur fonctionne bien, après avoir effacé certains packages, guzzle 7 a commencé à fonctionner correctement avec toute la configuration et mailisearch, mais symfony/http-client toujours reste un problème pour moi. Si j'ai une solution, je l'écrirai. Merci pour votre temps.

D'accord, je suis désolé de ne pas pouvoir vous aider davantage.

peut-être que faire quelques dd($url) autour de symfony/http-client/HttpClientTrait.php:417 peut vous montrer quelques astuces.

@shokme Encore merci beaucoup pour le temps et l'aide, la même configuration que nous avons tous les deux me donne l'espoir que je me trompe, donc je vais continuer l'enquête merci encore.

@shokme J'ai donc découvert que mon problème était lié à la configuration de docker et à la variable env. J'avais MEILISEARCH_HOST=meilisearch dans mon environnement qui fonctionnait parfaitement avec guzzle 6,7 et php-http/curl-client , ça me rendait fou quand seulement symfony/http-client plantait. J'ai donc vérifié la source de vendor/symfony/http-client/HttpClientTrait.php et j'ai découvert que leur resolveUrl() plantait sans nom d'URL "correct", alors j'ai changé mon MEILISEARCH_HOST=meilisearch en MEILISEARCH_HOST=http://meilisearch:7070 et c'est tout maintenant Ça marche. Merci encore, je reste avec meilisearch et le problème de fermeture.

Merci pour votre enquête @JexPY ! Soyez sûr que cela sera utile pour les utilisateurs qui viendront après vous 👍

Cette page vous a été utile?
0 / 5 - 0 notes