Heim  >  Artikel  >  Backend-Entwicklung  >  Wie setze ich den Standardwert einer Zeitstempelspalte auf den aktuellen Zeitstempel und aktualisiere ihn bei Änderungen in Laravel-Migrationen?

Wie setze ich den Standardwert einer Zeitstempelspalte auf den aktuellen Zeitstempel und aktualisiere ihn bei Änderungen in Laravel-Migrationen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-20 12:17:30608Durchsuche

How to Set a Timestamp Column's Default Value to the Current Timestamp and Update It On Modification in Laravel Migrations?

Standardwert der Zeitstempelspalte auf den aktuellen Zeitstempel in Laravel-Migrationen festlegen

Frage:

Wie Kann ich in Laravel-Migrationen eine Zeitstempelspalte mit einem Standardwert definieren, der auf den aktuellen Zeitstempel festgelegt ist, und ihn bei Änderung auf den aktuellen Zeitstempel aktualisieren?

Antwort:

MySQL:

Um den Standardwert einer Zeitstempelspalte auf den aktuellen Zeitstempel festzulegen und ihn bei Änderung in MySQL zu aktualisieren, können Sie die Spaltenmodifikatoren useCurrent() und useCurrentOnUpdate() verwenden:

<code class="php">$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>

PostgreSQL:

Für PostgreSQL ist kein spezifischer Modifikator erforderlich. Durch einfaches Verwenden der Methode timestamp() wird der Standardwert auf den aktuellen Zeitstempel gesetzt:

<code class="php">$table->timestamp('created_at');</code>

Ältere Laravel-Versionen:

In Laravel-Versionen vor 5.1.25 , können Sie die Methode DB::raw() verwenden, um den Standardwert festzulegen:

<code class="php">$table->timestamp('created_at')->default(DB::raw('NOW()'));
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>

Probleme:

  • MySQL 5.7 : Stellen Sie sicher, dass MySQL einen gültigen Datumsbereich für Zeitstempel verwendet.
  • PostgreSQL & Laravel 4.x:Setzen Sie die Genauigkeit des Zeitstempelwerts explizit auf 0, um Parsing-Probleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie setze ich den Standardwert einer Zeitstempelspalte auf den aktuellen Zeitstempel und aktualisiere ihn bei Änderungen in Laravel-Migrationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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