Итак, я знаю, что Laravel хранит свои «created_at» и «updated_at» как объект Carbon. По крайней мере, каждый раз, когда я пытаюсь их получить, они возвращаются в виде углерода. Итак, у меня есть объект Carbon, который я хочу сохранить в столбце «premium_until». Теперь, как мне это сделать? Должен ли я делать $table->timestamp('premium_until');
или $table->date('premium_until');
при настройке схемы? Кроме того, могу ли я просто сделать $user->premium_until = $carbonObject;
или мне нужно преобразовать его в строку? Заранее спасибо!
Как хранить объекты Carbon в MySQL с помощью Laravel
Ответы (2)
Eloquent предлагает удобный способ работы с датами.
Просто определите метод getDates
в вашей модели Eloquent, который возвращает массив имен столбцов, которые должны быть автоматически преобразованы Eloquent в экземпляры Carbon
!
public function getDates()
{
return array(static::CREATED_AT, static::UPDATED_AT, static::DELETED_AT, 'premium_until');
}
person
Andreyco
schedule
02.12.2013
Вместо определения метода getDates
теперь можно установить атрибут $dates
в вашей модели Eloquent. Преимущество по сравнению с предыдущим ответом заключается в том, что вам не нужно явно (пере) определять даты Eloquent (например, created_at
):
protected $dates = ['premium_until'];
person
Jarno
schedule
15.09.2015