最佳答案
我正在使用 Laravel 5.1
几天前,我在模型中使用 protected $dates = ['license_expire']
将字符串日期转换为 Carbon 实例。在 HTML 中,以创建形式显示的日期的默认值是 Carbon\Carbon::now()->format('Y-m-d')
为了在主页中显示警报,我使用了 <p>Licence Expired: <b>{{ $employee->license_expire < Carbon\Carbon::now()?'License has expired':$employee->license_expire->diffForHumans() }}</b></p>
在此之前,似乎似乎似乎没有什么问题。
但在这种情况下,无论数据库中有什么,编辑表单的默认值也是今天的日期(我使用的是部分表单)。为了解决这个问题,我将 HTML 中的默认值改为 NUll。并在模型中添加另一个方法,以创建形式显示当前日期。
public function getLicenseExpireAttribute($date)
{
return Carbon::parse($date)->format('Y-m-d');
}
之后,当我去主页我有一个 FatalErrorException
说 Call to a member function diffForHumans() on string
当我用 dd($employee->license_expire)
检查日期时,它又变成了字符串。
有人能告诉我在这种情况下怎样才能把弦转换成碳吗?
或者
使我的创建表单的默认日期作为今天的日期,编辑表单的日期从数据库,我可以使用 defForHuman ()显示警报在主页?