#Laravel Eloquentで論理削除を行う手順
Eloquentで論理削除(Soft Delete)を行う手順
##手順概要
- マイグレーションファイルの編集。
- モデルの編集。
- コントローラーの編集。
##手順詳細
###マイグレーションファイルの編集
テーブル作成のコードに「$table->softDeletes();」を追記。
[コード例]
migtation
public function up()
{
Schema::create('tablename', function (Blueprint $table) {
$table->id();
$table->string('name', 50);
$table->string('tel', 13);
$table->timestamps();
$table->softDeletes();
});
}
※この記述でテーブルに「deleted_at」が追加されます。
###モデルの編集
対象となるモデルに
「use Illuminate\Database\Eloquent\SoftDeletes;」
「use SoftDeletes;」
を追記。
[コード例]
Model
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Modelname extends Model
{
use SoftDeletes;
}
###コントローラーの編集
あとは、コントローラーで削除すれば、論理削除が実行されます。
[削除コード例]
controller
Modelname::find($id)->delete();
※削除してもレコードは残り、「deleted_at」に削除日時が挿入されます。
※「deleted_at」が入力されたレコードはget等で取得されません。