【问题标题】:Laravel 5.3 migrationLaravel 5.3 迁移
【发布时间】:2017-01-23 07:03:23
【问题描述】:

我只是升级到 Laravel 到 5.x 并使用 "jenssegers/Date": "^3.0"

所以在迁移的时候,好像有错误:

[ErrorException] 声明 Jenssegers\Date\Date::diffForHumans(Carbon\Carbon $since = NULL, $absolute = false) 应该兼容 Carbon\Carbon::diffForHumans(Carbon\Carbon $other = NULL, $absolute = 假,$short = 假)

请提出可以解决的方法。

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    实际上你的问题在于这个包jenssegers/date。如您所见,Jenssegers\Date 扩展了 Carbon 并在第 104 行

    public function diffForHumans(Carbon $since = null, $absolute = false, $short = false)
    

    与 Carbon 有不同的实现

    public function diffForHumans(Carbon $other = null, $absolute = false)
    

    解决这个问题的方法是重新定义任一类的方法,不推荐这样做,因为它们都在 Vendor 文件夹中。所以我猜你的选择是要么在jassegers/date 上打开一个问题,要么尽量不使用那个包(如果你不经常使用它,请编写你自己的替代品)。

    如果您的项目 Composer.json 中没有这个包,问题可能会更加困难,但是您使用的其他一些包有 jassegers/date 作为依赖项。您可以在每个项目依赖项的 Composer.json 中的供应商中检查这一点。在这种情况下,您可能会考虑使用与使用 jassegers/date 作为依赖项的包不同的包,至少在它更新之前是这样。

    也许有人有更好的建议,这只是我的想法..

    附:刚刚记住.. 如果您直接在 Composer.json 中使用它,您也可以 fork jassegers/date,并自行更改方法实现并使用该分叉版本,直到修复真正的版本。如果你间接使用它(你使用的一些其他包有这个作为依赖),那会有点复杂,这意味着你必须一直 fork 包,直到你到达jassegers/date。这将是相当乏味的工作,但应该可以暂时解决问题。

    【讨论】:

      【解决方案2】:

      如果你比较current Carbon source code

      public function diffForHumans(Carbon $other = null, $absolute = false, $short = false)
      

      current jenssegers/Date source code:

      public function diffForHumans(Carbon $since = null, $absolute = false, $short = false)
      

      你看不应该有任何问题。看来您使用的 Carbon 比 jenssegers/Date 更新,并且版本不兼容。您需要更新您的 jensegers/日期。

      3.2.8 seems to be the latest release,我会去那里测试。 3.2.3 seems to be the first version including the third parameter,与this commit

      Carbon\Carbon::diffForHumans(Carbon\Carbon $other = NULL, $absolute = false, $short = false) 有一个新的第三个参数并且缺少它 Jenssegers\Date\Date::diffForHumans 玩得不好。

      所以你的版本至少需要这样。

      【讨论】:

        猜你喜欢
        • 2017-02-26
        • 1970-01-01
        • 2017-07-20
        • 2017-05-07
        • 2017-05-27
        • 2017-04-10
        • 2017-06-21
        • 2017-05-23
        • 2017-02-10
        相关资源
        最近更新 更多