#php #eloquent #php-carbon #slim-3
#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-dTH:i:s.uZ');
$event->date = $date;
Дело в том, что мне понадобятся последние три строки для всех запросов.
Куда я могу их поместить, чтобы мне не приходилось копировать их после каждого запроса.
Ответ №1:
Вы можете использовать мутаторы Laravel :
protected $casts = [
'date' => 'datetime:Y-m-dTH:i:s.uZ',
];
Больше информации здесь :
Ответ №2:
Создайте метод в своей модели событий следующим образом:
public function getDateAttribute()
{
$date = Carbon::parse($this->date);
return $date->format('Y-m-dTH:i:s.uZ');
}
Теперь всякий раз, когда вы вызываете $event-> date, вы получаете измененный.
Комментарии:
1. Получаю ли я также измененную дату при вызове Event::all(), поскольку date является ее частью?
2. На самом деле я получаю сегодняшнюю дату в запрошенном формате
3. Да, это должно работать
Event::all()
; И он должен возвращать любую дату, которую вы сохранили в своей базе данных в запрошенном формате