ホームページ  >  記事  >  バックエンド開発  >  Laravel移行でタイムスタンプ列のデフォルト値を現在のタイムスタンプに設定し、変更時に更新する方法

Laravel移行でタイムスタンプ列のデフォルト値を現在のタイムスタンプに設定し、変更時に更新する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-20 12:17:30611ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。