Вы работаете с Eloquent ORM Laravel и хотите либо удалить столбец updated_at
, либо использовать исключительно столбец created_at
? В этой статье блога мы рассмотрим несколько способов добиться этого, одновременно упрощая вашу кодовую базу. Мы углубимся в примеры кода и будем использовать разговорный язык, чтобы сделать процесс более доступным. Давайте начнем!
- Использование свойства
$timestamps
.
Один из самых простых способов удалить столбецupdated_at
— использовать свойство$timestamps
. свойство в ваших моделях Eloquent. По умолчанию для этого свойства установлено значениеtrue
, и оно автоматически обрабатывает временные меткиcreated_at
иupdated_at
. Чтобы удалить столбецupdated_at
, просто установите для$timestamps
значениеfalse
в вашей модели:
class YourModel extends Model
{
public $timestamps = false;
}
- Переопределение поля
updated_at
:
Если вы хотите сохранить столбецupdated_at
, но запретить его автоматическое обновление, вы можете переопределить полеupdated_at
. >16поля в вашей модели. В классYourModel
добавьте следующий код:
class YourModel extends Model
{
protected $guarded = ['updated_at'];
public function setUpdatedAt($value)
{
return $this;
}
}
Этот код устанавливает поле updated_at
как защищенное, гарантируя, что его нельзя будет массово назначать. Кроме того, он переопределяет метод setUpdatedAt
для возврата самого экземпляра модели, эффективно предотвращая любые изменения в поле updated_at
.
- Использование мутаторов.
Другой подход — использовать мутаторы для обработки столбцаupdated_at
в соответствии с вашими требованиями. Вы можете определить мутатор в своей модели, чтобы манипулировать значениемupdated_at
перед его сохранением в базе данных. Вот пример:
class YourModel extends Model
{
public function getUpdatedAtAttribute($value)
{
return $this->attributes['created_at'];
}
}
В этом примере мы переопределяем метод getUpdatedAtAttribute
, чтобы вместо этого возвращать значение столбца created_at
. Это фактически делает столбец updated_at
зеркальным отображением столбца created_at
.
Используя любой из этих методов, вы можете либо удалить столбец updated_at
, либо использовать исключительно столбец created_at
, упрощая свою кодовую базу Laravel Eloquent ORM.
Надеюсь, эта статья помогла вам найти подходящее решение для ваших нужд. Упрощение Laravel Eloquent ORM путем удаления или изменения столбца updated_at
может стать ценным шагом на пути к более чистому и удобному в сопровождении коду. Приятного кодирования!