Laravel 5 Laravel 5.3迁移

Laravel 5 Laravel 5.3迁移,laravel-5,Laravel 5,我只是升级到Laravel到5.x,并使用“Jenssers/Date”:“^3.0” 因此,在迁移时,似乎出现了一个错误: [错误例外]声明 Jenssegers\Date\Date::diffForHumans(Carbon\Carbon$since=NULL, $absolute=false)应与兼容 碳\碳::diffForHumans(碳\碳$other=NULL,$absolute= 错误,$short=false) 请建议如何修复它。如果您比较: 与: 你看不应该有任何问题。看起来

我只是升级到Laravel到5.x,并使用
“Jenssers/Date”:“^3.0”

因此,在迁移时,似乎出现了一个错误:

[错误例外]声明 Jenssegers\Date\Date::diffForHumans(Carbon\Carbon$since=NULL, $absolute=false)应与兼容 碳\碳::diffForHumans(碳\碳$other=NULL,$absolute= 错误,$short=false)

请建议如何修复它。

如果您比较:

与:

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

,我想试试去那里,与:

碳\碳::diffForHumans(碳\碳$other=NULL,$absolute= false,$short=false)有一个新的第三个参数,但在 Jenssegers\Date\Date::diffForHumans玩得不好


所以你的版本至少应该是这样。

实际上,你的问题在于这个软件包。如您所见,
Jenssegers\Date
extensed Carbon and on line 104

public function diffForHumans(Carbon $since = null, $absolute = false, $short = false)
与碳有不同的实现方式

public function diffForHumans(Carbon $other = null, $absolute = false)
克服这一问题的方法是在任一类上重新定义方法,这是不推荐的,因为它们都在供应商文件夹中。所以我想你的选择是要么在上公开一个问题,要么尽量不使用那个软件包(如果你不经常使用它,就写你自己的替代品)

如果您的projects Composer.json中没有这个包,但是您使用的其他包将
jassegers/date
作为依赖项,那么问题可能会更加困难。您可以在每个项目依赖项的Composer.json中的供应商中检查这一点。在这种情况下,您可能会考虑使用不同的包,而不是使用代码> JaseSels/Dead <代码>作为依赖关系,至少在更新之前。 也许有人有更好的建议,这只是我的想法

顺便说一句,我刚想起来。。如果您直接在Composer.json中使用fork
jassegers/date
,您还可以自己更改方法实现并使用该fork版本,直到修复真正的版本。如果您间接地使用它(您使用的其他一些包将此作为依赖项),这将有点复杂,这意味着您必须一直向下分叉包,直到到达
jassegers/date
。这将是相当乏味的工作,但应该暂时解决问题

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