Problem:
In Laravel's Schema Builder/Migrations, Benutzer Suchen Sie nach Anleitungen zum Erstellen einer Zeitstempelspalte mit dem Standardwert CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. Die Funktion timestamps() ist derzeit standardmäßig auf 0000-00-00 00:00 für erstellte und aktualisierte Spalten eingestellt.
Lösung:
So legen Sie den Standardwert von a fest Zeitstempelspalte mithilfe von Laravel-Migrationen in CURRENT_TIMESTAMP umwandeln DB::raw():
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Seit Laravel 5.1.25 können Sie dies mit dem Spaltenmodifikator useCurrent() vereinfachen:
$table->timestamp('created_at')->useCurrent();
Für MySQL ist ON UPDATE CURRENT_TIMESTAMP möglich kann über DB::raw() verwendet werden:
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Beginnend mit Laravel 8.36.0 können useCurrent() und useCurrentOnUpdate() zusammen dasselbe erreichen:
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Probleme:
Danke an @andrewhl für die Laravel 4.x-Ausgabe und @ChanakaKarunarathne für die Verwenden Sie die Verknüpfung „CurrentOnUpdate()“.
Das obige ist der detaillierte Inhalt vonWie setze ich Standard-Zeitstempelspalten in Laravel-Migrationen auf CURRENT_TIMESTAMP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!