У меня есть отношение между двумя таблицами - Many To Many.Eloquent - метки времени в сводных таблицах
Я использую метод sync()
для сохранения соответствующих моделей:
public function tags()
{
return $this->belongsToMany('Tag')->withTimestamps();
}
И таким образом я могу установить поля временных меток - created_at
и updated_at
, но как я могу переопределить формат этих дат.
Я перекрываться формат для моделей с использованием следующих:
protected function getDateFormat()
{
return 'U';
}
Но это, кажется, не работает при использовании sync()
. Все записи в таблице сохраняются с использованием формата даты по умолчанию.
Временная метка в сводных таблицах? Вся точка сводной таблицы должна выступать в качестве моста между идентификаторами. Они никогда не должны содержать никаких столбцов, но идентификаторов. Но если вам действительно нужно сделать это по какой-то злой причине, вы можете приблизиться к ней следующим образом: http://stackoverflow.com/questions/24441395/how-to-change-default-format-at-created-at-and- updated-at-value-laravel – Yang
@dave Я просто хочу отслеживать, когда сообщения меняют свои теги, так что это один из способов сделать это. Я спрашиваю, как изменить формат даты КОГДА хранятся значения в базе данных. –
Проведя некоторое время, исследуя внутренние элементы 'Illuminate \ Database \ Eloquent \ Relations \ BelongsToMany', я вижу, что формат времени жестко закодирован. В качестве альтернативного решения вы можете позволить методу timestamps обновления Laravel, как он это делает, а затем создать временную метку из этого формата. Почему нет? Это сделает то, что вы хотите, и вы получите временную метку (просто протестируйте ее, и она отлично работает). – Yang