我想在Eloquent上建立类似中间件的东西。当我在我的模型“事件”上发出请求时,我需要始终解析日期值。
这是我有的:
活动模式:
class Event extends Model {
protected $fillable = [
'type',
'topic',
'teacher',
'date',
'endDate'
];
}
功能请求数据:
$event = Event::find(Todo::max('event_id'));
$date = Carbon::parse($event->date);
$date->format('Y-m-d\TH:i:s.u\Z');
$event->date = $date;
关键是我将需要所有请求的最后三行。我在哪里可以放置它们,所以我不必将它们复制到每个请求之外。
你可以使用Laravel的mutators:
protected $casts = [
'date' => 'datetime:Y-m-d\TH:i:s.u\Z',
];
更多信息:
在Event模型中创建一个方法,如下所示:
public function getDateAttribute()
{
$date = Carbon::parse($this->date);
return $date->format('Y-m-d\TH:i:s.u\Z');
}
现在每当你调用$ event-> date时你都会得到修改过的。