首頁 > 後端開發 > php教程 > 如何將時間戳列的預設值設為當前時間戳記並在 Laravel 遷移中的修改時更新它?

如何將時間戳列的預設值設為當前時間戳記並在 Laravel 遷移中的修改時更新它?

Patricia Arquette
發布: 2024-10-20 12:17:30
原創
701 人瀏覽過

How to Set a Timestamp Column's Default Value to the Current Timestamp and Update It On Modification in Laravel Migrations?

在Laravel 遷移中將默認時間戳列值設置為當前時間戳

問題:

如何我可以在Laravel 遷移中定義一個時間戳列,將預設值設為當前時間戳,並在修改時將其更新為當前時間戳嗎?

答案:

MySQL:

要將時間戳列的預設值設定為目前時間戳並在MySQL中修改時更新它,可以使用useCurrent() 和useCurrentOnUpdate() 列修飾符:

<code class="php">$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
登入後複製

PostgreSQL:

對於PostgreSQL,不需要特定的修飾符。只需使用timestamp() 方法即可將預設值設為當前時間戳記:

<code class="php">$table->timestamp('created_at');</code>
登入後複製

較舊的Laravel 版本:

在5.1.25 之前的Laravel 版本中,您可以使用DB::raw() 方法設定預設值:

<code class="php">$table->timestamp('created_at')->default(DB::raw('NOW()'));
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
登入後複製

陷阱:

  • MySQL 5.7 : 確保MySQL 使用有效的時間戳記日期範圍。
  • PostgreSQL 和 Laravel 4.x: 明確將時間戳值的精確度設為 0 以避免解析問題。

以上是如何將時間戳列的預設值設為當前時間戳記並在 Laravel 遷移中的修改時更新它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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