LoginSignup
14
9

More than 3 years have passed since last update.

laravel formのrouteとactionによる処理の書き方

Posted at

はじめに

投稿サイトを作っている最中に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を参照して遷移するのが特徴になります。
この様に使い分けて使用するのもアリかもしれません。

参考文献

公式 actionによるURL
初心者向け Routeの解説
“スクリーンショット” 2021-02-24 15.04.37.jpg
“スクリーンショット” 2021-02-24 15.01.55.jpg

14
9
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
14
9