Standardwerte für Zeitstempel mithilfe von Laravel-Migrationen festlegen
Der Laravel Schema Builder bietet eine praktische Möglichkeit, Datenbanktabellen zu erstellen und zu ändern. Allerdings stoßen Benutzer gelegentlich auf Probleme beim Festlegen von Standard-Zeitstempelwerten auf den aktuellen Zeitstempel beim Erstellen und Aktualisieren.
Die timestamps()-Methode
Typischerweise die timestamps()-Methode wird verwendet, um die Zeitstempelspalten „created_at“ und „update_at“ automatisch zu verwalten. Diese Methode setzt ihre Standardwerte jedoch auf „0000-00-00 00:00:00“.
Lösung: DB::raw() und useCurrent()
Um einen Standardwert von CURRENT_TIMESTAMP festzulegen, verwenden Sie DB::raw():
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
As Von Laravel 5.1.25 können Sie auch die Methode useCurrent() verwenden:
$table->timestamp('created_at')->useCurrent();
MySQL ON UPDATE-Klausel
Für MySQL können Sie die ON UPDATE-Klausel angeben -Klausel mit DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Ab Laravel 8.36.0 ist dies möglich Verwenden Sie useCurrentOnUpdate() in Verbindung mit useCurrent():
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Probleme
Das obige ist der detaillierte Inhalt vonWie lege ich Standard-Zeitstempelwerte in Laravel-Migrationen fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!