將目前時間戳設定為Laravel Migrations 中時間戳列的預設值
問:如何在Laravel Migrations 中設定時間戳列預設為目前時間戳,並可選擇根據值更新自身變更?
A: Laravel 的Schema Builder 提供了一個簡單的方法來實現此目的:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP')); $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
DB::raw 是用於建立原始表達式,允許我們將CURRENT_TIMESTAMP設定為 預設。該解決方案可以在各種資料庫驅動程式中有效運作。
Laravel 中的增強功能:
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
注意事項:
MySQL(5.7 以上):
確保為時間戳列分配有效的預設值以避免潛在的問題無效日期的問題(例如 0000-00-00 00:00:00)。使用useCurrent() 或使列可為空。
PostgreSQL 與 Laravel 4.x:
以上是如何在 Laravel 遷移中設定預設時間戳記和自動更新時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!