Wie stelle ich Laravel-Zeitstempel auf CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP ein?

DDD
Freigeben: 2024-10-20 12:17:02
Original
248 Leute haben es durchsucht

How to Set Laravel Timestamps to CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP?

Standardzeitstempel bei Laravel-Migrationen

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

Ab Laravel 5.1.25 verwenden Sie den Spaltenmodifikator useCurrent():

<code class="php">$table->timestamp('created_at')->useCurrent();</code>
Nach dem Login kopieren

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

Seit Laravel 8.36.0 verwenden Sie den Modifikator useCurrentOnUpdate():

<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
Nach dem Login kopieren

Probleme:

  • MySQL: Seit Version 5.7 ist 0000-00-00 00:00:00 kein gültiges Datum mehr. Legen Sie einen gültigen Standardwert fest oder verwenden Sie nullable()-Zeitstempel.
  • PostgreSQL und Laravel 4.x: Geben Sie eine Genauigkeit von Null für CURRENT_TIMESTAMP an, um Probleme beim Parsen im Mikrosekundenbereich zu vermeiden.
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!