Heim > Datenbank > MySQL-Tutorial > Wie lege ich Standardzeitstempel und Zeitstempel für die automatische Aktualisierung in Laravel-Migrationen fest?

Wie lege ich Standardzeitstempel und Zeitstempel für die automatische Aktualisierung in Laravel-Migrationen fest?

Susan Sarandon
Freigeben: 2024-11-24 20:38:13
Original
945 Leute haben es durchsucht

How to Set Default Timestamps and Auto-Update Timestamps in Laravel Migrations?

Aktuelle Zeitstempel als Standard für Zeitstempelspalten in Laravel-Migrationen festlegen

F: Wie kann ich eine Zeitstempelspalte in Laravel-Migrationen konfigurieren? Standardmäßig wird der aktuelle Zeitstempel verwendet, mit der Option, sich selbst bei Wert zu aktualisieren ändern?

A: Laravel's Schema Builder bietet eine einfache Methode, um dies zu erreichen:

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

DB::raw ist Wird verwendet, um einen Rohausdruck zu erstellen, der es uns ermöglicht, CURRENT_TIMESTAMP als Standard festzulegen. Diese Lösung funktioniert effektiv über verschiedene Datenbanktreiber hinweg.

Verbesserungen in Laravel:

  • useCurrent() (verfügbar ab Laravel 5.1.25 ): Vereinfacht die Standardwerteinstellung auf den aktuellen Zeitstempel und ersetzt ihn DB::raw('CURRENT_TIMESTAMP').
$table->timestamp('created_at')->useCurrent();
Nach dem Login kopieren
  • useCurrentOnUpdate() (verfügbar ab Laravel 8.36.0): Fügt hinzu die Möglichkeit, den Zeitstempel bei Wertänderung zu aktualisieren useCurrent().
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Nach dem Login kopieren

Vorsichtsmaßnahmen:

MySQL (5.7 und höher):

Stellen Sie sicher, dass Sie den Zeitstempelspalten einen gültigen Standardwert zuweisen, um potenzielle Probleme mit ungültigen Datumsangaben zu vermeiden (z. B. 0000-00-00 00:00:00). Verwenden Sie useCurrent() oder machen Sie die Spalten nullbar.

PostgreSQL mit Laravel 4.x:

  • Die Standardgenauigkeit von Zeitstempelspalten kann zu unerwartetem Verhalten führen.
  • Verwendung CURRENT_TIMESTAMP(0) oder aktualisieren Sie auf Laravel 5.0, um eine Standardgenauigkeit von Null zu verwenden und diese Probleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie lege ich Standardzeitstempel und Zeitstempel für die automatische Aktualisierung in Laravel-Migrationen fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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