如何在Laravel 7中设置全局的Carbon格式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Laravel 7中设置全局的Carbon格式?相关的知识,希望对你有一定的参考价值。
我刚刚升级了我的Laravel应用程序从 6.x
到 7.x
和我有问题 与日期日期戳。我知道一些事情改变了关于这一点。
我试图设置一个默认的 Carbon
的格式。我有一些自定义的 timestamp
我的数据库中的字段,是这样创建的。
$table->timestamp('published_at')->nullable();
升级后我开始收到以下错误,每当这些字段被更新的时候
Invalid datetime format: 1292 Incorrect datetime value: '2020-04-04T11:00:00.000Z' for column 'published_at'
我试着在每个字段上使用建议的方法 model
:
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
但是这个方法从来没有被调用过,也就无法工作。
然而,设置一个突变器却能正常工作。
public function setPublishedAtAttribute($value)
{
$this->attributes['published_at'] = Carbon::parse($value)->format('Y-m-d H:i:s');
}
但我想避免这些字段的重复代码。总共有14个字段需要创建这些突变器, 所以我想知道是否有更好的方法?
答案
好吧,我想通了。我只是不得不添加这些时间戳到
protected $dates = [];
以上是关于如何在Laravel 7中设置全局的Carbon格式?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 需要从模型中访问 BaseController 中设置的全局变量