LaravelでSoftDeleteマイグレーションを使用する方法


SoftDelete機能を使用するには、まずマイグレーションファイルを作成する必要があります。以下の手順で進めてください。

  1. コマンドラインから以下のコマンドを実行し、新しいマイグレーションファイルを生成します。
php artisan make:migration add_deleted_at_column_to_[テーブル名] --table=[テーブル名]

上記のコマンドを実行すると、database/migrationsディレクトリに新しいマイグレーションファイルが作成されます。

  1. 生成されたマイグレーションファイルを開き、upメソッドとdownメソッドを編集します。以下のコードを追加して、deleted_atカラムを作成します。
public function up()
{
    Schema::table('[テーブル名]', function (Blueprint $table) {
        $table->softDeletes();
    });
}
public function down()
{
    Schema::table('[テーブル名]', function (Blueprint $table) {
        $table->dropSoftDeletes();
    });
}

上記のコードでは、[テーブル名]の部分を対象とするテーブルの名前に置き換えてください。

  1. マイグレーションを実行するには、以下のコマンドを実行します。
php artisan migrate

上記のコマンドを実行すると、マイグレーションがデータベースに適用され、deleted_atカラムが追加されます。

これでSoftDelete機能が有効になりました。削除したいレコードを削除する場合は、deleteメソッドを呼び出します。削除されたレコードはデータベースから非表示にされますが、実際には削除されません。

削除されたレコードを復元するには、restoreメソッドを使用します。

// レコードの削除
$record->delete();
// 削除されたレコードの復元
$record->restore();

また、削除済みのレコードを完全に削除するには、forceDeleteメソッドを使用します。

// 削除済みのレコードの完全削除
$record->forceDelete();

以上がLaravelでSoftDelete機能を使用する方法です。この機能を使うことで、データの復元や誤った削除の防止に役立ちます。