0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

laravelで記事の削除をする機能[多数]

Posted at

はじめに

ポートフォリオ作成にあたって、記事を削除するための機能を作成した。
ただ削除する機能についてはいくつか方法があるので、それをまとめようと思う。

基本情報

まずControllerでの設定をします。掲示板なのでHome画面に記事を一覧で出力します。
細かいことは省きますが、articleメソッドでmemoテーブルからstatusが1のものを呼び出して出力する

      $memo = Memo::where('status','1')->where('id',$id)->first();

ルーティング

    Route::post('/delete/{id}', 'AccountController@delete')->name('delete');

削除機能その①

物理的に削除する(delete)

Modelで記事のidと一致したものをdelete()で削除する
※「削除しました」というメッセージが出力されるようにフラッシュメッセージで設定する


public function destroy($id)
{
  Articles::where('id', $id)->delete();
  return redirect('/')->with('success', '削除しました');
}

削除機能その②

論理機能削除

Column Type Option
status integer default = 1

削除ボタンを押すとstatusが1→2になる
Modelで以下のような設定をすると対象になる記事のstatusが2になる
もとの設定でstatus=1だけが出力されるようになるから、それ以外が出力されない

    public function delete(Request $request , $id){
        $inputs = $request->all();
        Memo::where('id',$id)->update([ 'status' => 2 ]);
    
        return redirect()->route('home')->with('flash-delete','削除しました');
    }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?