Красноречиво изменить данные, прежде чем их перенастроить - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу создать что-то вроде промежуточного программного обеспечения на 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 ]

1 голос
/ 18 апреля 2019

Вы можете использовать мутаторы Laravel:

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

Больше информации здесь:

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

0 голосов
/ 18 апреля 2019

Создайте метод в вашей модели событий следующим образом:

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

Теперь, когда вы вызываете $ event-> date, вы получаете модифицированный.

...