UnexpectedValueException尝试安装laravelcollective时无法解析版本约束

时间:2017-11-13 15:40:15

标签: php laravel laravel-5 composer-php laravelcollective

我是laravel的新手,我正在尝试安装 laravelcollective 。我只是关注文档here,我在项目目录中使用它:

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

不幸的是,在我按下后立即出现以下错误:

  

[UnexpectedValueException]     无法解析版本约束:5.4.0:无效的版本字符串“:5.4.0”

我只是不知道如何解决这个问题。我在google上找不到太多东西,这与我在laravel上缺乏经验相结合,让我陷入困境。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

您可以在composer.json中手动添加,然后使用composer update

只需在"laravelcollective/html": "5.4.*",

的行下添加"laravel/framework":"5.4.*",即可

像这样:

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

答案 1 :(得分:2)

如果您不想更新所有您的依赖项,则不应该在没有任何参数的情况下运行composer update

在您的情况下,问题可能是在将参数传递给Composer之前,shell已经解释了^字符。这可以通过使用单引号而不是双引号来解决:

composer require 'laravelcollective/html:^5.4.0'

当您使用上述其中一条评论中建议的5.4.*约束时,您在冒号后面添加了一个空格,这会导致Composer将版本约束解释为包名称。正确的命令就是这样:

composer require "laravelcollective/html":"5.4.*"

答案 2 :(得分:2)

就我而言,我使用的是Laravel 5.7,在尝试安装Laravel集合体时一直出现错误。

您可以在不指定任何版本的情况下使用此命令:

import os
print(os.getcwd())

对我有用。 :)

答案 3 :(得分:1)

composer require "laravelcollective/html ^5.4.0"

为我工作!