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

Patricia Arquette
リリース: 2024-10-20 12:17:30
オリジナル
608 人が閲覧しました

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!