Вы работаете с 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может стать ценным шагом на пути к более чистому и удобному в сопровождении коду. Приятного кодирования!