【Laravel】論理削除したレコードの取得、復元、完全削除の方法

こんにちは!CODE CLUB965のKです!

前回、LaravelでDBテーブルのレコードを論理削除する方法について記事に書きましたが、今回はソフトデリートを使って論理削除したデータの取得、復元、完全削除についてまとめておこうと思います。

前回の記事をまだ読んでいない方は、ぜひ読んでみて下さい。

ソフトデリート(論理削除)されたデータも検索に含める

検索結果に論理削除されたデータを含める場合、例えば「Userデーブル」があったとします。
論理削除されたユーザーを検索に含める場合、

// 論理削除されたユーザーを検索に含める
Usr::withTrashed()->get();

「withTrashed()」を使用することで検索に含めることができます。

また、論理削除されたデータのみ取得する場合は、

// 論理削除されたデータのみ取得
Usr::onlyTrashed()->get();

「onlyTrashed()」を使用することで取得可能です。

データの復元

論理削除されたデータを復元したい場合は、「restore()」を使用することで復元可能です。

// 対象のデータを復元する
Usr::find($id)->restore();

複数の論理削除されたデータを全て復元するのであれば、

// 論理削除されたデータを全て復元する
Usr::withTrashed()->restore();

「withTrashed()」を使用することで復元できます。

データの完全削除(物理削除)

論理削除ではなく物理削除したい場合は、「forceDelete()」を使用します。

// 対象のデータを物理削除する
Usr::find($id)->forceDelete();

これでデータを完全にテーブルから削除することができます。

最後に

今回は、論理削除したデータの取得、復元、完全削除について書きました。

前回の記事と合わせて読んでいただければと思います!

それでは、また!

Follow me!