В Laravel миграции — это мощный инструмент управления схемой базы данных. Они позволяют программно определять и изменять таблицы, столбцы и другие элементы базы данных. Временные метки обычно используются в базах данных для отслеживания времени создания или последнего обновления записей. В этой статье мы рассмотрим различные методы обновления текущей отметки времени в миграциях Laravel, используя разговорный язык и примеры кода.
Метод 1: использование модификатора default
Самый простой способ обновить текущую временную метку при миграции Laravel — установить значение по умолчанию для столбца временной метки на текущую временную метку. Вот пример:
Schema::table('users', function (Blueprint $table) {
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'));
});
Метод 2: использование модификатора onUpdate
Модификатор onUpdate
позволяет автоматически обновлять столбец метки времени при каждом обновлении строки. Вот как вы можете его использовать:
Schema::table('users', function (Blueprint $table) {
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'))->onUpdate(DB::raw('CURRENT_TIMESTAMP'));
});
Метод 3. Использование метода update
.
Если вам нужно вручную обновить значение временной метки в коде миграции, вы можете использовать метод update
, предоставленный Красноречивый ОРМ. Вот пример:
DB::table('users')->update(['updated_at' => now()]);
Метод 4: использование событий модели.
Другой подход заключается в использовании событий модели Laravel для обновления отметки времени при каждом обновлении модели. Вот как это можно сделать:
class User extends Model
{
public static function boot()
{
parent::boot();
static::updating(function ($model) {
$model->updated_at = now();
});
}
}
Обновить текущую временную метку в миграции Laravel можно различными способами. Используя модификатор default
, модификатор onUpdate
, метод update
или события модели, вы можете легко управлять обновлениями меток времени в схеме базы данных. Выберите метод, который лучше всего соответствует вашим потребностям, и наслаждайтесь гибкостью и удобством Laravel.