web-dev-qa-db-fra.com

UnexpectedValueException Impossible d'analyser la contrainte de version lors de la tentative d'installation de laravelcollective

Je suis nouveau à Laravel et j'essaie d'installer laravelcollective. Je ne fais que suivre la documentation ici et je l’utilise à partir du répertoire de mon projet: 

composer require "laravelcollective/html":"^5.4.0"

Malheureusement, immédiatement après avoir appuyé sur, j'obtiens l'erreur suivante: 

[UnexpectedValueException] Impossible d'analyser la contrainte de version: 5.4.0: Chaîne de version non valide ": 5.4.0"

Je ne sais tout simplement pas comment résoudre ce problème. Je n'ai pas trouvé grand chose sur Google, ce qui, combiné à mon manque d'expérience avec Laravel, me laisse coincé. 

Quelqu'un peut aider?

6
incense_stick

Vous pouvez l'ajouter manuellement dans composer.json puis utiliser composer update

Ajoutez simplement "laravelcollective/html": "5.4.*", sous la ligne avec "laravel/framework":"5.4.*", 

Comme ça : 

"require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.4.*",
        "laravelcollective/html": "5.4.*", <-- Add this row
        "laravel/tinker": "~1.0"
    },
2
Thomas Rollet

Dans mon cas, j’utilisais Laravel 5.7 et continuais à avoir une erreur en essayant d’installer le collectif Laravel.

Vous pouvez utiliser cette commande sans spécifier de version:

composer require 'laravelcollective/html'

Cela a fonctionné pour moi. :)

2
mikejay

Vous ne devriez jamais exécuter composer update sans aucun argument si vous ne voulez pas mettre à jour tous vos dépendances.

Dans votre cas, le problème est probablement que le caractère ^ est déjà interprété par votre shell avant que l'argument ne soit passé à Composer. Cela pourrait éventuellement être résolu en utilisant des guillemets simples au lieu de guillemets doubles:

composer require 'laravelcollective/html:^5.4.0'

Lorsque vous avez utilisé la contrainte 5.4.* comme suggéré dans l'un des commentaires ci-dessus, vous avez ajouté un espace après les deux-points, ce qui conduit Composer à interpréter la contrainte de version comme un nom de package. La bonne commande aurait été la suivante:

composer require "laravelcollective/html":"5.4.*"
2
xabbuh
composer require "laravelcollective/html ^5.4.0"

Travaillé pour moi!

1
Bla Bla