Laravelでフィールドが変更されたかどうかをチェックする方法


  1. ダーティ属性の使用: Laravelのモデルでは、isDirtyメソッドを使用してフィールドが変更されたかどうかを確認できます。以下は使用例です。
if ($model->isDirty('field_name')) {
    // フィールドが変更された場合の処理
} else {
    // フィールドが変更されていない場合の処理
}
  1. オリジナル値と現在の値の比較: モデルのフィールドは、getOriginalメソッドを使用してオリジナルの値を取得できます。この値を現在の値と比較することで、フィールドが変更されたかどうかを判定できます。
if ($model->field_name !== $model->getOriginal('field_name')) {
    // フィールドが変更された場合の処理
} else {
    // フィールドが変更されていない場合の処理
}
  1. フィールドごとの監視: Laravelでは、モデルのbootedメソッドを使用してフィールドの変更を監視することもできます。以下は例です。
protected static function booted()
{
    static::updating(function ($model) {
        if ($model->isDirty('field_name')) {
            // フィールドが変更された場合の処理
        } else {
            // フィールドが変更されていない場合の処理
        }
    });
}

これらの方法を使用して、Laravelでフィールドが変更されたかどうかを確認できます。適切な方法を選択し、必要に応じてコードをカスタマイズしてください。