如何在 Laravel Migrations 中將預設時間戳記設定為目前時間戳記?

Barbara Streisand
發布: 2024-10-20 11:40:02
原創
616 人瀏覽過

How Do I Set the Default Timestamp to the Current Timestamp in Laravel Migrations?

Laravel 遷移:將預設時間戳設定為當前時間戳

在 Laravel 中,時間戳通常用於追蹤活動,例如建立或更新記錄的時間。預設情況下,這些時間戳記設定為 0000-00-00 00:00。但是,自動將預設值設為當前時間戳會很有用。

使用DB::raw()

對於要定期更新的時間戳,可以使用DB ::raw() 函式指定CURRENT_TIMESTAMP 為預設值:

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
登入後複製

這確保了created_at列將始終包含當前時間戳,無論是在最初建立記錄時還是在更新記錄時。

使用useCurrent() 或useCurrentOnUpdate()

或者,您可以使用useCurrent() 或useCurrentOnUpdate() 方法來實現相同的結果:

$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrentOnUpdate();
登入後複製
MySQL ON UPDATE 子句

對於MySQL,您可以在DB::raw() 中使用ON UPDATE 子句:

$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
登入後複製
陷阱

  • 陷阱
  • MySQL: 從MySQL 5.7 開始,您可能需要明確設定時間戳列的有效預設值,因為0000-00-00 00:00:00 不再被接受。
PostgreSQL & Laravel 4.x: 在 Laravel 4.x 中,如果您使用預設精確度的 CURRENT_TIMESTAMP,可能會遇到解析時間戳記的問題。使用 CURRENT_TIMESTAMP(0) 來避免這種情況。

以上是如何在 Laravel Migrations 中將預設時間戳記設定為目前時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板