雄辩地修改数据,然后重新调整它们

时间:2019-04-18 13:14:56

标签: php eloquent php-carbon slim-3

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

重点是,我将在所有请求中都需要最后三行。 我可以在哪里放置它们,因此不必在每次请求后都复制它们。

2 个答案:

答案 0 :(得分:1)

您可以使用Laravel的变异子:

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

更多信息在这里:

fenced code blocks

答案 1 :(得分:0)

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

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

现在,每当调用$ event-> date时,您都会获得修改的日期。