Heim >Backend-Entwicklung >PHP-Tutorial >Wie stelle ich Laravel-Zeitstempel auf CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP ein?
Laravels Schema Builder vereinfacht die Manipulation von Datenbankschemata, aber das Festlegen des Standardwerts einer Zeitstempelspalte auf den aktuellen Zeitstempel kann eine Herausforderung sein.
Problem:
In Laravel generiert timestamps() Zeitstempelspalten mit einem Standardwert von 0000-00-00 00:00. Wie können wir diesen Standard mithilfe von Laravel-Migrationen auf CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP festlegen?
Lösung:
Um CURRENT_TIMESTAMP als Standardwert für eine Zeitstempelspalte anzugeben, verwenden Sie DB: :raw():
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
Ab Laravel 5.1.25 verwenden Sie den Spaltenmodifikator useCurrent():
<code class="php">$table->timestamp('created_at')->useCurrent();</code>
Für ON UPDATE-Klauseln können wir DB::raw verwenden ():
<code class="php">$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));</code>
Seit Laravel 8.36.0 verwenden Sie den Modifikator useCurrentOnUpdate():
<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
Probleme:
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
Das obige ist der detaillierte Inhalt vonWie stelle ich Laravel-Zeitstempel auf CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!