パラメータの使わけ出来ていますか? ルート/クエリ/リクエスト /Laravel

パラメータの使い分け出来ていますでしょうか。
私は恥ずかしながら、感覚で使っている部分が多かったです。 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に含まれています。

私よりも何倍も詳細に、解説されてる記事を見つけたのでご参考にしてください。

[RESTful API]パスパラメータ、クエリパラメータ、リクエストボディの違いと設計

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です