【问题标题】:How can I upgrade Carbon with Laravel 5.6?如何使用 Laravel 5.6 升级 Carbon?
【发布时间】:2018-12-22 06:03:53
【问题描述】:

我在 cmd "composer require nesbot/carbon" 中试过,但我得到了这个:

Your requirements could not be resolved to an installable set of packages.

  Problem 1

    - laravel/framework v5.6.27 requires nesbot/carbon 1.25.* -> satisfiable by nesbot/carbon[1.25.0] but these conflict with your requirements or minimum-stability.
    - laravel/framework v5.6.27 requires nesbot/carbon 1.25.* -> satisfiable by nesbot/carbon[1.25.0] but these conflict with your requirements or minimum-stability.
    - laravel/framework v5.6.27 requires nesbot/carbon 1.25.* -> satisfiable by nesbot/carbon[1.25.0] but these conflict with your requirements or minimum-stability.
    - Installation request for laravel/framework (locked at v5.6.27, required as 5.6.*) -> satisfiable by laravel/framework[v5.6.27].


Installation failed, reverting ./composer.json to its original content.

【问题讨论】:

  • 您需要新功能还是什么?看起来 Laravel 5.6 只允许 1.25 版本,所以你可能会通过升级到更新的东西来打破这种依赖。
  • 除非您想要 Carbon 的新功能,否则无需升级。错误说明了自己,Laravel 需要为 5.6 版本维护该版本

标签: php laravel composer-php php-carbon


【解决方案1】:

我不建议在没有特别谨慎的情况下这样做,因为 Laravel 或您的任何其他依赖项可能需要非常严格的包版本。

话虽如此,Composer 确实为别名版本提供了一个巧妙的技巧,通过在 composer.json 中指定别名版本来解决此问题:

"require": {
    ...
    "nesbot/carbon": "1.32.0 as 1.25.0"
},

注意as 1.25.0 会欺骗其他包认为1.32.0 等同于1.25.0 的依赖关系。这个技巧需要精确的版本。

【讨论】:

【解决方案2】:

从 5.8 版本开始,Laravel 正式支持 Carbon 2,如果你想在较低版本上使用它,可以按照以下步骤操作:

明确设置 Carbon 版本并在您的 composer.json 中添加适配器:

{
"require": {
    "nesbot/carbon": "2.21.3 as 1.34.0"
 }
}

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2019-09-21
    • 2018-07-13
    • 2019-01-13
    • 1970-01-01
    • 2018-08-10
    • 2019-03-08
    • 2012-03-06
    相关资源
    最近更新 更多