#はじめに
投稿サイトを作っている最中にrouteとactionの処理が両方書いていたので備忘録として投稿します。投稿フォームに必ず以下の記述が必要になります。
<form method="POST" action="{{ route('bulletin-board.destroy', $post) }}">
action="{{}}"の後ろが人によって様々な書き方があったのでご紹介したいと思います。
#action="{{route}}"の場合
web.phpから参照します
web.php
Route::resource('bulletin-board', 'PostsController', ['only' => [ 'update','destroy']]);
route.blade.php
//routeのパターン
<form method="POST" action="{{ route('bulletin-board.destroy', $post) }}">
#書き方
routeと宣言した場合route('サブディレクトリ.処理(indexやcreate等々)')
#action="{{action}}"の場合
web.phpとコントローラーを参照
web.php
Route::resource('bulletin-board', 'PostsController', ['only' => ['edit', 'update','destroy']]);
PostsController.php
public function edit($id) {
$post = Post::findOrFail($id);
return view('bulletin-boards.edit', ['post' => $post]);
}
action.blade.php
//actionのパターン
<form method="POST" action="{{ action('PostsController@destroy'}}">
#書き方
actionと宣言した場合action="{action('コントローラー名@関数名')}"
#最後に
どちらも第二引数を渡すことができます。しかし2つには特徴があります
routeのメリットはRouteファサードを使用して簡単に記述できる
のが特徴になります。
actionにはURLを参照して遷移する
のが特徴になります。
この様に使い分けて使用するのもアリかもしれません。