Laravelでforeach中の削除処理についての質問
view上でforeachして表示した複数の投稿文に、削除ボタンをつけたいのですが、それぞれの投稿ボタンに個別の投稿IDを持たせて、それに対してControllerで削除処理をさせたいのですが、どのように書けばよいかがわかりません。
view内のformのボタンそのものにIDを付けて送信することは不可能なのでしょうか・・・ できればURLで~/idのようなことをしたくなく、ボタンを押した瞬間に元の掲示板ページにリダイレクトしたいのです・・・。(無理を言ってすみません!)
とのこと
回答
URLで削除する場合はこうします。
コントローラーのdelete処理はできてるものとします。
/post/delete/[削除対象のID]
// ルーティング
// routes/web.php
Route::post('/post/delete/{id}', 'PostController@postDelete');
//view
@foreach ($posts as $key => $post)
{{-- この部分で動的に削除formを生成している --}}
<form method="post" action="/post/delete/{{ $post->id }}">
<input type="submit" name="delete" value="delete">
</form>
@endforeach
いつもこういうやり方をしてます。
テストしてないのでどこか間違えてたらすみません。
コントローラー
class PostController extends Controller
{
public function getList()
{
//post一覧取得処理
return view('/list', compact('posts'));
}
public function postDelete(Request $requests)
{
//削除処理
return redirect()->action('PostController@getList');
}
}
delete処理に入ってから元のページにリダイレクトしたらいいと思うのですが、どうでしょうか?
期待されてるものと違ったらすみません。。
0
投稿者:通りがりすの人 / 投稿日:2018-05-10 15:39:14 / PV数:1482 / コメント数:0
コメント 0
コメント投稿