Laravelのピボットテーブルにcreated_atとupdated_atフィールドを自動的に追加する方法


  1. ピボットテーブルのマイグレーションファイルを作成します。ターミナルで以下のコマンドを実行します。
php artisan make:migration add_timestamps_to_pivot_table --table=pivot_table_name
  1. 生成されたマイグレーションファイルを開き、以下のようにtimestamps()メソッドを使用してcreated_atとupdated_atフィールドを追加します。
public function up()
{
    Schema::table('pivot_table_name', function (Blueprint $table) {
        $table->timestamps();
    });
}
  1. マイグレーションを実行するために、ターミナルで以下のコマンドを実行します。
php artisan migrate

これで、ピボットテーブルにcreated_atとupdated_atフィールドが自動的に追加されます。

追加のコード例として、ピボットテーブルモデルにwithTimestamps()メソッドを使用する方法もあります。以下は例です。

class PivotModel extends Model
{
    public $timestamps = true;
    public function relatedModels()
    {
        return $this->belongsToMany(RelatedModel::class)->withTimestamps();
    }
}

このようにすることで、関連するモデルとのリレーションシップに基づいてピボットテーブルのcreated_atとupdated_atフィールドが自動的に更新されます。

以上が、Laravelでピボットテーブルにcreated_atとupdated_atフィールドを自動的に追加する方法です。これにより、ピボットテーブルのレコードの作成日時と更新日時を簡単に追跡することができます。