Eloquent 在返回之前修改数据
Eloquent modify data before retuning them
我想在 Eloquent 上构建类似中间件的东西。
当我对我的模型提出请求时 "Event" 我需要始终解析日期值。
这是我的资料:
事件模型:
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 的修改器:
protected $casts = [
'date' => 'datetime:Y-m-d\TH:i:s.u\Z',
];
更多信息在这里:
在您的事件模型中创建一个方法,如下所示:
public function getDateAttribute()
{
$date = Carbon::parse($this->date);
return $date->format('Y-m-d\TH:i:s.u\Z');
}
现在无论何时调用 $event->date 都会得到修改后的事件。
我想在 Eloquent 上构建类似中间件的东西。 当我对我的模型提出请求时 "Event" 我需要始终解析日期值。
这是我的资料:
事件模型:
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 的修改器:
protected $casts = [
'date' => 'datetime:Y-m-d\TH:i:s.u\Z',
];
更多信息在这里:
在您的事件模型中创建一个方法,如下所示:
public function getDateAttribute()
{
$date = Carbon::parse($this->date);
return $date->format('Y-m-d\TH:i:s.u\Z');
}
现在无论何时调用 $event->date 都会得到修改后的事件。