【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();
これでデータを完全にテーブルから削除することができます。
最後に
今回は、論理削除したデータの取得、復元、完全削除について書きました。
前回の記事と合わせて読んでいただければと思います!
それでは、また!