Problemstellung
Standardwerte für Zeitstempelspalten in Laravel Migrationen, die den Schema Builder verwenden, werden auf „0000-00-00 00:00:00“ eingestellt. Wie ändern wir dies in „CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP“?
Lösung
Verwenden Sie DB::raw(), um CURRENT_TIMESTAMP als Standardwert einer Spalte zu integrieren:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Alternativ können Sie nach Laravel 5.1.25 die Methode useCurrent() direkt in der Zeitstempelspalte verwenden:
$table->timestamp('created_at')->useCurrent();
Fügen Sie für MySQL die ON UPDATE-Klausel mit DB ein: raw() oder ab Laravel 8.36.0 die Methode useCurrentOnUpdate():
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Vorsichtsmaßnahmen
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
Vielen Dank an @andrewhl für die Identifizierung des Laravel 4.x PostgreSQL-Problems und @ChanakaKarunarathne für die Verknüpfung useCurrentOnUpdate().
Das obige ist der detaillierte Inhalt vonWie fülle ich Zeitstempelspalten mithilfe von Laravel-Migrationen mit dem aktuellen Zeitstempel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!