2017-04-14 3 views
1

これは私がレコードを削除する方法です。あなたがレコードを削除する最良の方法は何ですか?ユーザー関連のモデルレコードを削除する最良の方法

 public function delete_post($id) { 
     //Check if id is numeric and exists 
     if((is_numeric($id)) && (!empty($id))) 
     { 
      $post = Post::find($id); 
      // check if this id belongs to user (User has author) 
      if(Auth::id() == $post->user_id){ 
       Post::with('likes')->whereId($id)->delete(); 
      }else{ 
       Session::flash('error', 'You can't delete this. 
      } 
     }else{ 
      Session::flash('error', 'Problem with your input'); 
     } 
    } 

答えて

0

あなたはここで

より取引を削除置く必要があります。 Laravel Transactions

+0

)それは 数値であるかどうかをチェックするために持っていけないはい我々としても取引でこれをラップすることができますが、私は、ユーザーのレコードを削除するための最良の方法を必要としています。 –

0

1))ので、ユーザーが

2を削除する権限を持っているかどうかを確認する必要がいけないAuth::id()をチェックして、あなたのビューにpostを渡す(「ポスト/ /削除」フォームのURLを作る。$ポスト> ID)あなたがPost::find($id)->delete();

+0

ビューでAuth :: id()をチェックすることをお勧めしますか? 2番目に、ユーザーがこれを "url( 'post/delete /'。$ post-> id)に変更して url( '投稿/削除/ 3')に変更すると、投稿IDにかかわらずID3の投稿を削除します3はユーザーに属しません。 –

+0

あなたは、そこにデータを渡す前にあなたのコントローラ内にあなたのビューのチェックのAuth :: idを置いていません。 –

+0

誰かが投稿/削除/ XXXに自分のID以外のIDを持ってきた場合は、チェックしないで自分が所有していると仮定しているので、あなたのビューでこのシナリオをチェックするのは最善ではありません彼らは彼らが所有していないモデルを削除するために知らない人に能力を与えている。あなたのコントローラでは、簡単な認証と所属チェックをcrudコマンドで実行します。 –

関連する問題