株式会社オートプロジェクト

Laravelの便利な機能「SoftDletes」で論理削除が簡単にできる

Laravelの便利な機能「SoftDletes」で論理削除が簡単にできる

softDeletesとは何か

LaravelにおけるsoftDeleteとは、Laravelが提供する論理削除機能です。以下のような特徴を持ちます。

  • レコードを物理削除しない
  • delete_atに日時が入るだけ
  • 通常のクエリでは自動的に「削除済みを除外」してくれる

つまり、削除したように見せてくれる仕組みです。それでは実際の使い方を解説します。

実際の使い方

  1. Migrationにdeleted_atを追加する
    Schema::table('users', function (Blueprint $table) {
       $table->softDeletes(); // deleted_at カラムを追加 
    });
  2. Modelにトレイトを追加する
    use Illuminate\Database\Eloquent\SoftDeletes;
     class User extends Model {
     use SoftDeletes;
     }

上記でSoftDletesが有効になりました。

実際の動き方

ユーザーを削除してみます。

$user->delete();

上記を行うと下記になります。
id: 1 / name: Erika/ deleted_at: 2026-04-02 15:00:00

通常のクエリでは自動で除外されます。

User::all()

削除済みも含めて取得したい場合は以下です。

User::withTrashed()->get();

削除済みだけ取得したい場合は以下です。

User::onlyTrashed()->get();

復元したい場合は以下です。

$user->restore();

完全に削除したい場合は以下です。

$user->forceDelete();

まとめ

特に難しい作業もなく、簡単に実装できるLaravelの論理削除の紹介をしました。ご自身の使い道に合わせて有効活用していただたら幸いです。

エンジニアのみなさまへ

株式会社オートプロジェクトでは、中小企業向けのシステム・アプリケーション開発 / 外注サービスを提供しております。

貴社のニーズに応じた柔軟なサポートを行いますので、ぜひお気軽にご相談ください。

中小企業向けシステム・アプリケーション開発 / 外注サービスについて、オートプロジェクトに問い合わせをする

Contact ご相談・お問い合わせ

実現の可否や概算費用、納期に関するご質問・ご相談も、
どうぞご遠慮なくお問い合わせください。

お問い合わせ ご相談・お問い合わせ
TOP