deleted-mezhevikin
@deleted-mezhevikin

Как правильно работать с timestamp/carbon в laravel5?

Делаю комментарии. В модели Comment помимо стандартной даты created_at есть еще дата родителя created_at_parent.

Я добавил в модель Comment, protected $dates = ['created_at_parent']; , чтобы created_at_parent был карбон объектом.

По умолчанию created_at_parent == created_at.

Создаю объект Comment, присваиваю $comment->created_at к $comment->created_at_parent.

$comment = new Comment();
$comment->text = $request->get('text');
$comment->created_at_parent = $comment->created_at;
$comment->save();


И после сохранения получаю даты с разницой 3 часа. Хотя оба объекта Carbon.

Если делать предварительный parse через carbon то все ок. Ну это же костыль какой-то

$comment = new Comment();
   $comment->text = $request->get('text');
   $comment->created_at_parent = Carbon::parse($comment->created_at);
   $comment->save();


Как правильно работать с датой в таком случае?
  • Вопрос задан
  • 1271 просмотр
Решения вопроса 1
deleted-mezhevikin
@deleted-mezhevikin Автор вопроса
Проблема была в том что $comment->created_at пустой до вызова метода save();

$comment = new Comment();
$comment->text = $request->get('text');
$comment->created_at = Carbon::now();
$comment->created_at_parent = $comment->created_at;
$comment->save();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
65536
@65536
я так: $comment->created_at->toDateTimeString()

по идее можно в модели прописать

public function getCreated_atAttribute($value)
{
return $value->toDateTimeString();
}

тогда само будет к такому виду приводить. но это если только оно везде в таком виде нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы