Laravel5.1の論理削除の考え方

Laravel5.1の論理削除の考え方


1, 各テーブルの最後にdeleted_atという削除カラムがある(論理削除)
2, deleted_atの初期値はNULL、timestamp型
3, laravelのシステム上、削除したい場合は削除日時をupdate文で入れる(リアルタイムでOK)
4, $user->delete()で自動的に3を行ってくれる。delete文での削除は行わない
5, クラスの他メソッドは、今まで通りの使い方で論理削除したレコードを無視してくれる(無視しないメソッドも用意されている)

【下準備】

App\クラス名.phpで、論理削除を有効化する

// クリエイトビルダでテーブル生成時に、削除カラムを一行追加する。

上記の下準備をしないとDELETE文で実際に削除されてしまう!

【SQL文から論理削除する場合】

クラスの他メソッドは、今まで通りの使い方で論理削除したレコードはSELECT文の対象外になります。

また、リレーション関係の親レコードを削除したら、紐付いている子レコードの論理削除も出来ます
※users-postsのリレーションは設定済

参照URL
http://readouble.com/laravel/5/0/dev/ja/eloquent.html#soft-deleting