在返回之前雄辩地修改数据

问题描述 投票:0回答:2

我想在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;

关键是我将需要所有请求的最后三行。我在哪里可以放置它们,所以我不必将它们复制到每个请求之外。

php eloquent php-carbon slim-3
2个回答
1
投票

你可以使用Laravel的mutators:

protected $casts = [
    'date' => 'datetime:Y-m-d\TH:i:s.u\Z',
];

更多信息:

https://laravel.com/docs/5.8/eloquent-mutators


0
投票

在Event模型中创建一个方法,如下所示:

public function getDateAttribute()
{
   $date = Carbon::parse($this->date);
   return $date->format('Y-m-d\TH:i:s.u\Z');
}

现在每当你调用$ event-> date时你都会得到修改过的。

© www.soinside.com 2019 - 2024. All rights reserved.