SoftDelete機能を使用するには、まずマイグレーションファイルを作成する必要があります。以下の手順で進めてください。
- コマンドラインから以下のコマンドを実行し、新しいマイグレーションファイルを生成します。
php artisan make:migration add_deleted_at_column_to_[テーブル名] --table=[テーブル名]
上記のコマンドを実行すると、database/migrations
ディレクトリに新しいマイグレーションファイルが作成されます。
- 生成されたマイグレーションファイルを開き、
up
メソッドとdown
メソッドを編集します。以下のコードを追加して、deleted_at
カラムを作成します。
public function up()
{
Schema::table('[テーブル名]', function (Blueprint $table) {
$table->softDeletes();
});
}
public function down()
{
Schema::table('[テーブル名]', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
上記のコードでは、[テーブル名]
の部分を対象とするテーブルの名前に置き換えてください。
- マイグレーションを実行するには、以下のコマンドを実行します。
php artisan migrate
上記のコマンドを実行すると、マイグレーションがデータベースに適用され、deleted_at
カラムが追加されます。
これでSoftDelete機能が有効になりました。削除したいレコードを削除する場合は、delete
メソッドを呼び出します。削除されたレコードはデータベースから非表示にされますが、実際には削除されません。
削除されたレコードを復元するには、restore
メソッドを使用します。
// レコードの削除
$record->delete();
// 削除されたレコードの復元
$record->restore();
また、削除済みのレコードを完全に削除するには、forceDelete
メソッドを使用します。
// 削除済みのレコードの完全削除
$record->forceDelete();
以上がLaravelでSoftDelete機能を使用する方法です。この機能を使うことで、データの復元や誤った削除の防止に役立ちます。