Задать вопрос
@SVZhidkow
Бэкенд-разработчик

Как в Laravel в модели поменять формат даты?

В документации Laravel сказано про такое свойство модели, как $dateFormat, что это свойство определяет, как атрибуты даты хранятся в базе данных.

Я использую это свойство так protected $dateFormat = 'Y-m-d', потому что мне надо, чтобы сохранялась только дата, без времени. Но в результате работа с датой становится невозможной, т.е. даже при простом выводе $model->created_at выдает ошибку
Trailing data {"exception":"[object] (InvalidArgumentException(code: 0): Trailing data at ...\www\\vendor\
esbot\\carbon\\src\\Carbon\\Carbon.php:910)...

Т.е. дата такой модели воспринимается уже не как объект Carbon, а, видимо, как строка, и какие-либо манипуляции с датой именно как с датой уже не возможны. Верно?

Кто может подсказать, где почитать об этом, и как изменить формат даты, в котором дата пишется в базу, оставляя ее при этом в формате Carbon?
  • Вопрос задан
  • 3006 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
be_a_dancer
@be_a_dancer
Backend/Fullstack Developer
Вопрос: зачем изменять дату вносимую в базу, если достаточно изменить ее представление во внешнем виде?

Есть такой вариант - добавить в модель
protected $casts = [
    'created_at' => 'datetime:d/m/Y', // Свой формат
    'updated_at' => 'datetime:d/m/Y',
];


Ну и прочитайте вот эту главу документации
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы