目次
導入手順
UserモデルにSoftDeletesを追加
Laravelのモデルについての確認
Laravelのモデルとは基本的には「モデル = データベースのテーブル」と考えてOK
- クラス(User) は、「usersテーブル全体」を表します。
- インスタンス($user) は、「テーブルの中の1行(1レコード)」を表します。

そして下記の内容を定義します
- リレーション(テーブル同士のつながり)
- 属性設定(パスワードは隠すなど、データの扱い方)
- カスタムメソッド(データを使った処理)
上記を踏まえて、UserモデルにSoftDeletesを追加することで、何が起きているか説明します
use SoftDeletes;これでUserクラスに「SoftDeletesトレイトを使っています/useしています」
(PHPは1つのクラスしか継承できないため、トレイトを使用し機能を取り込んでます)
これでUserモデルは以下の3つの機能を手に入れました。
- 「削除」の意味を変える(上書き)
通常delete() したら、データを消す。
→delete() したら、「データは消さずに deleted_at に日付を入れる」という動作に変わる。
- 「無視」する能力(フィルター)
通常User::all() したら全員出す。
→User::all() したら、「deleted_at に日付が入っている人は自動的に除外」して持ってくる。
- 「復活」させる技(メソッド追加)
通常 そんな機能はない
deleted_atカラムの作成
前述した「機能(トレイト)」をしようするにはdeleted_atカラムが必要になります
マイグレーションファイルの作成しusersテーブルに論理削除用のdeleted_atカラムを追加します、そしてマイグレーションファイルの内容をデータベースに反映します
./vendor/bin/sail artisan make:migration add_deleted_at_to_users_table --table=users
./vendor/bin/sail artisan migratehttps://github.com/idw-coder/laravel-rds/tree/feature/admin-user-management