Heim >Backend-Entwicklung >PHP-Tutorial >Wie stelle ich den Standardwert von Zeitstempelspalten auf CURRENT_TIMESTAMP und die automatische Aktualisierung in Laravel-Migrationen ein?
Standardwert der Zeitstempelspalte auf den aktuellen Zeitstempel in Laravel-Migrationen festlegen
Frage: Wie kann ich einen Zeitstempel erstellen? Spalte mit dem Standardwert CURRENT_TIMESTAMP erstellen und bei Laravel-Migrationen auf CURRENT_TIMESTAMP aktualisieren?
Laravels Schema Builder stellt nicht explizit eine Methode bereit, um den Standardwert einer Zeitstempelspalte auf CURRENT_TIMESTAMP festzulegen.
Antwort:
Um den Standardwert auf CURRENT_TIMESTAMP festzulegen, verwenden Sie die Methode DB::raw(), um einen Rohausdruck zu definieren:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Für MySQL ist dies möglich Verwenden Sie zusätzlich die ON UPDATE-Klausel in DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Ab Laravel 5.1.25 können Sie die Methode useCurrent() verwenden, um dies zu vereinfachen:
$table->timestamp('created_at')->useCurrent();
In Laravel 8.36.0 und höher kann useCurrent() mit der Methode useCurrentOnUpdate() sowohl für Standard- als auch für Aktualisierungswerte verwendet werden:
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Probleme:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
Das obige ist der detaillierte Inhalt vonWie stelle ich den Standardwert von Zeitstempelspalten auf CURRENT_TIMESTAMP und die automatische Aktualisierung in Laravel-Migrationen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!