Heim > Backend-Entwicklung > PHP-Tutorial > Wie stelle ich den Standardzeitstempel in Laravel-Migrationen auf den aktuellen Zeitstempel ein?

Wie stelle ich den Standardzeitstempel in Laravel-Migrationen auf den aktuellen Zeitstempel ein?

Barbara Streisand
Freigeben: 2024-10-20 11:40:02
Original
620 Leute haben es durchsucht

How Do I Set the Default Timestamp to the Current Timestamp in Laravel Migrations?

Laravel-Migrationen: Standardzeitstempel auf aktuellen Zeitstempel setzen

In Laravel werden Zeitstempel häufig verwendet, um Aktivitäten zu verfolgen, z. B. wann ein Datensatz erstellt oder aktualisiert wurde. Standardmäßig sind diese Zeitstempel auf 0000-00-00 00:00 eingestellt. Es kann jedoch sinnvoll sein, den Standardwert automatisch auf den aktuellen Zeitstempel zu setzen.

Verwendung von DB::raw()

Für Zeitstempel, die Sie regelmäßig aktualisieren möchten, können Sie die Datenbank verwenden ::raw()-Funktion zum Angeben von CURRENT_TIMESTAMP als Standardwert:

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Spalte „created_at“ immer den aktuellen Zeitstempel enthält, sowohl bei der ersten Erstellung des Datensatzes als auch bei seiner Aktualisierung.

Verwenden von useCurrent() oder useCurrentOnUpdate()

Alternativ können Sie die Methoden useCurrent() oder useCurrentOnUpdate() verwenden, um das gleiche Ergebnis zu erzielen:

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

Die useCurrent ()-Methode weist den aktuellen Zeitstempel als Standardwert sowohl für die Erstellung als auch für Aktualisierungen zu, während useCurrentOnUpdate() den Standardwert nur für Aktualisierungen festlegt.

MySQL ON UPDATE-Klausel

Für MySQL ist dies möglich Verwenden Sie die ON UPDATE-Klausel in DB::raw():

$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Nach dem Login kopieren

Gotchas

  • MySQL: Seit MySQL 5.7 müssen Sie möglicherweise explizit festlegen ein gültiger Standardwert für Zeitstempelspalten, da 0000-00-00 00:00:00 nicht mehr akzeptiert wird.
  • PostgreSQL & Laravel 4.x: In Laravel 4.x, Sie Es kann zu Problemen beim Parsen von Zeitstempeln kommen, wenn Sie CURRENT_TIMESTAMP mit einer Standardgenauigkeit verwenden. Verwenden Sie stattdessen CURRENT_TIMESTAMP(0), um dies zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie stelle ich den Standardzeitstempel in Laravel-Migrationen auf den aktuellen Zeitstempel ein?. 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