Различные датчики доступа в одной модели

У меня есть это, и это хорошо работает, чтобы дать мне даты в британском формате:

protected $dateFormat = 'd-m-Y';
protected $dates = ['purchased', 'warranty_expires', 'scrapped_on', 'location_date', 'user_date'];

Тем не менее, я также создал и изменил (не стандартные Laravel, а мои собственные) метки времени, а не даты. Как я могу автоматизировать форматирование этих двух полей при получении, например, «d-m-Y H: i: s»?

0

Решение

Вы можете сделать это с помощью библиотеки углерода

public function getFormattedPurchasedAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d-m-Y H:i:s');
}

Вы должны использовать класс углерода. Напишите эту строку в верхней части, где используется все пространство имен.

use Carbon;
1

Другие решения

Лично я не пользуюсь $dateFormat атрибут, потому что он изменяет формат для всех полей дат. Я хотел бы создать собственные средства доступа для получения отформатированных полей, например:

public function getFormattedPurchasedAttribute($value) {
return $this->asDateTime($value)->format('d-m-Y H:i:s');
}

так что теперь вы можете использовать $model-formatted_purchased получить purchased поле отформатировано так, как вы хотите

0