パラメータの使い分け出来ていますでしょうか。
私は恥ずかしながら、感覚で使っている部分が多かったです。 Getの場合はとりあえず、ルートパラメータかな?? POSTの追加処理にもクエリパラメータを利用したり….
それぞれの違い・役割と、Requestの処理の中身を見ていきたいと思います。
①:ルートパラメータ
文字通り、URLに含めるパラメータです。
ccccのようにパラメータを設定して、ルートの出し訳をします。
domain.com/user/{cccc}/show
②:クエリパラメータ
Queryにパラメータを追加したパラメータです。
domain.com/user/show?post_id=50
これは、ControllerからGET/POSTする際に設定する機会が多いかと思います。
<form method="POST" action="{{ route('users.post', ['user_id' => $user_id]) }}"> <input type="text" name="comment"> </form>
[‘user_id’ => $user_id] こちらが、クエリパラメータとして送信されます。
<input type=”text” name=”comment”> こちらは、リクエストパラメータとして送信されます。
②-1:Requestの中身からクエリパラメータを確認
dd($request)で確認頂くと。
+query: Symfony\Component\HttpFoundation\InputBag {#1297 ▼ #parameters: array:4 [▼ "_token" => "XXXXXXXXXXXXXX" "user_id" => "1" ] } +request: Symfony\Component\HttpFoundation\InputBag {#1298 ▼ #parameters: array:4 [▼ "_token" => "XXXXXXXXXXXXXX" "comment" => "こんにちは" ] }
query >> parameters・request >> parameters にそれぞれ含まれます。
③:リクエストパラメータ
リクエストのBodyタグの中身に含めるパラメータです。
<form method="POST" action="{{ route('users.post') }}"> <input type="text" name="comment"> <input type="hidden" name="user_id" value="{{$user->id}}"> </form>
下記がリクエストパラメータとして送信されます。
<input type="text" name="comment">
<input type="hidden" name="user_id" value="{{$user->id}}">
③-1:Requestの中身からクエリパラメータを確認
dd($request)で確認頂くと。
+request: Symfony\Component\HttpFoundation\InputBag {#1298 ▼ #parameters: array:4 [▼ "_token" => "XXXXXXXXXXXXXX" "user_id" => "1" "comment" => "こんにちは" ] }
+request >> parametersに含まれています。
私よりも何倍も詳細に、解説されてる記事を見つけたのでご参考にしてください。