如何在Illuminate / Carbon中处理数据类型TIME

时间:2018-11-15 04:43:29

标签: datetime time eloquent

我正在使用具有以下列(MariaDB)的数据库:

  • EventDate(数据类型DATE)
  • EventStart(数据类型为TIME)
  • EventEnd(数据类型为TIME)

在模型中,我为第一个字段(EventDate)分配:

...
protected $dates = ['EventDate'];
...

然后将其格式化为:

$event->EventDate->formatLocalized('%a. %d.%m.%y')

现在,我想以类似的方式设置时间格式,但是如果我将下一个字段添加到数组中:

...
protected $dates = ['EventDate', 'EventStart'];
...

并且我收到以下错误消息:

Uncaught InvalidArgumentException: Unexpected data found.

有人知道如何解决该问题吗? 谢谢你!

1 个答案:

答案 0 :(得分:0)

由于数据类型为TIME的列以字符串类型出现在PHP中,所以我遇到了访问器的问题:

public function getEventEndAttribute($value) {
    return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
}

然后我可以在输出脚本中给出自己的格式:

$event->EventEnd->format('H:i');