我刚刚升级了我的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 = [];