Carbon\Carbon :: now()抛出InvalidArgumentException并显示消息'Trailing data'

Ric*_*nks 7 laravel php-carbon laravel-5 artisan

在Laravel Artisan Tinker中运行以下内容时:

$article = new App\Article;
$article->published_at = Carbon\Carbon::now();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

InvalidArgumentException with message 'Trailing data'
Run Code Online (Sandbox Code Playgroud)

但是,Carbon\Carbon::now()它自己返回一个Carbon预期的实例.

published_at应该通过protected $dates = ['published_at'];模型变为Carbon实例,它也包括在内protected $fillable.

任何人都知道这里发生了什么或我如何解决?


编辑:在路径中的闭包中运行时会发生同样的事情,因此并不特定于Tinker

编辑2:看起来其他人正在经历这个:https://laracasts.com/discuss/channels/general-discussion/carboncarbonnow-giving-error和两次评论https://laracasts.com/series/laravel-5-基本面/次/ 8

编辑3:与第一个示例完全相同的代码在15:10 在https://laracasts.com/series/laravel-5-fundamentals/episodes/15中使用,没有错误.

编辑4:交换上面代码的第2行$article->published_at = Carbon::now()->format('Y-m-d');工作正常,甚至包括存储在数据库中的时间(虽然不知道为什么).

我猜测"尾随数据"可能指的是完整的日期时间太长,但看起来很奇怪,Laravel会自动执行日期时间(例如,自动转换为Carbon实例),但不是这样.

编辑3中的用法会更好!

Ron*_*Sir -1

只需删除这个功能:

public function setPublishedAtAttribute($date){
    $this->attributes['published_at']=Carbon::createFromFormat('Y-m-d',$date);
}
Run Code Online (Sandbox Code Playgroud)

因为已经修复了published_at字段的格式......