Eloquent - временные метки в сводных таблицах

1

У меня есть отношение между двумя таблицами - Many To Many.

Я использую метод sync() для сохранения связанных моделей:

public function tags()
{
    return $this->belongsToMany('Tag')->withTimestamps();
}

И таким образом я могу установить поля timestamp - created_at и updated_at, но как я могу переопределить формат этих дат.

Я переопределил формат для моделей, используя следующее:

protected function getDateFormat()
{
    return 'U';
}

Но, похоже, это не работает при использовании sync(). Все записи в таблице сохраняются с использованием формата даты по умолчанию.

  • 0
    Отметка времени в сводных таблицах? Весь смысл сводной таблицы в том, чтобы действовать как мост между идентификаторами. Они никогда не должны содержать никаких столбцов, кроме идентификаторов. Но если вам действительно нужно сделать это по какой-то злой причине, вы можете подойти к этому следующим образом: stackoverflow.com/questions/24441395/…
  • 0
    @dave dave Я просто хочу отслеживать, когда посты меняют свои теги, так что это один из способов сделать это. Я спрашиваю, как изменить формат даты, когда хранятся значения в базе данных.
Показать ещё 2 комментария
Теги:
laravel-4

1 ответ

0

Используйте Carbon для управления этими данными. Сохраните его, как есть, но определите мутатор для модели. В ближайшее время → мутатор - это getter для конкретных данных, поступающих из базы данных (в активной записи → класс модели). Временные метки возвращаются как экземпляр Carbon, поэтому формат очень прост. Мутаторы делают это за кулисами. Может изменяться как даты, такие как свойства модели (шифрование, форматирование и т.д.). Laravel doc показывает, как это сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню