2013-11-30 5 views
0

Итак, я знаю, что Laravel сохраняет свои «created_at» и их «updated_at» в качестве объекта Carbon. По крайней мере, каждый раз, я пытаюсь их получить, они возвращаются как Углерод. Поэтому у меня есть объект Carbon, который я хочу сохранить в столбце «premium_until». Теперь, как я должен это делать? Должен ли я делать $table->timestamp('premium_until'); или $table->date('premium_until'); при настройке схемы? Кроме того, могу ли я просто сделать $user->premium_until = $carbonObject; или мне нужно преобразовать его в строку? Заранее спасибо!Как хранить углеродные объекты в MySQL с помощью Laravel

ответ

4

Eloquent предлагает удобный способ работы с датами.
Просто определите метод getDates на вашей модели Eloquent, которая возвращает массив имен столбцов, который должен быть преобразован в Carbon экземпляров automaticaly by Eloquent!

public function getDates() 
{ 
    return array(static::CREATED_AT, static::UPDATED_AT, static::DELETED_AT, 'premium_until'); 
} 
0

Вместо того, чтобы определить метод getDates, теперь можно установить атрибут вашей красноречивый модели $dates. Преимущество по сравнению с предыдущим ответом заключается в том, что вам не нужно явно (повторно) определять даты выдачи (например, created_at):

protected $dates = ['premium_until'];