09論理削除の実装
現状ではメモが物理削除されてしまいます。
今回は、invalidというカラムを追加し0なら未削除、1なら削除ときり分ける論理削除で実装しています。
物理削除を論理削除に修正していきましょう。
public function delete(Request $request) {
$user_id = Auth::id(); // 追記
$delete_id = $request->delete_id;
Memo::where('user_id', $user_id)
->where('id', $delete_id)->update(['invalid' => 1]); // 変更
return redirect('/') // 変更
}コードの解説をします。
Memo::where('user_id', $user_id)->where('id', $delete_id)->update(['invalid' => 1]);この部分では、user_idとidでレコードを絞った後、update文でinvalidを0から1に変更しています。
DBからは削除されませんが画面上では表示されません。
削除ボタンを押してメモを削除してみましょう。

メモが削除されました!
// ターミナルが mysql> になってない場合
sudo mysql -u root
SELECT * FROM 'memo';テーブルではメモが残っています。
invalidのカラムに注目してください。1が入っており、削除されている状態になっています。
画面に表示されないのはshow()メソッドでwhere('invalid’, 0)と絞り込みをしているからです。
コメントを残す