Heim > Backend-Entwicklung > PHP-Tutorial > Wie fülle ich Zeitstempelspalten mithilfe von Laravel-Migrationen mit dem aktuellen Zeitstempel?

Wie fülle ich Zeitstempelspalten mithilfe von Laravel-Migrationen mit dem aktuellen Zeitstempel?

Barbara Streisand
Freigeben: 2024-10-20 12:28:30
Original
1098 Leute haben es durchsucht

How Do I Populate Timestamp Columns with Current Timestamp Using Laravel Migrations?

So füllen Sie Zeitstempelspalten mithilfe von Laravel-Migrationen mit dem aktuellen Zeitstempel

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'));
Nach dem Login kopieren

Alternativ können Sie nach Laravel 5.1.25 die Methode useCurrent() direkt in der Zeitstempelspalte verwenden:

$table->timestamp('created_at')->useCurrent();
Nach dem Login kopieren

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();
Nach dem Login kopieren

Vorsichtsmaßnahmen

  • MySQL (ab Version 5.7). ): '0000-00-00 00:00:00' ist nicht mehr gültig. Geben Sie daher einen gültigen Standardwert (z. B. useCurrent() oder nullable()) für Zeitstempelspalten an.
  • PostgreSQL (Laravel 4.x): Stellen Sie sicher, dass Sie für CURRENT_TIMESTAMP eine Genauigkeit von Null angeben, um dies zu verhindern Zeitstempel-Parsing-Fehler aufgrund von Sekundenbruchteilen:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage