クエリパラメータとルートパラメータ

クエリパラメータ

クエリパラメータはURLの後ろに「?foo=100&bar=200」のように付与するパラメータです。GETパラメータとも呼びます。
クエリパラメータをコントローラで取得する場合、コントローラメソッドの引数でRequestインスタンスを受け取ると、POSTデータと同じようにクエリパラメータの値も取得可能です。

Route::get('query_params','SampleController@queryParamsTest');
    public function queryParamsTest(Request $request) {
        dump($request->all());
    }
http://127.0.0.1:8000/query_params?foo=100&bar=200

ルートパラメータ

Laravelでは、URLのパスを部分的にパラメータとして扱うことができます。
例えば、次のようなルーティングをしてみます。

Route::get('/route_params/{anything}','SampleController@routeParamsTest');

次のようなURLパスの場合に、このルーティングにマッチします。

https://127.0.0.1:8000/route_params/foo
https://127.0.0.1:8000/route_params/100

ルーティングパスの{anything}の部分はどんな文字列でもマッチするようになるのです。
そして、この{anything}がパラメータとなり、コントローラで取得することができます。
次のように、コントローラメソッドの引数として受け取ります。

    public function routeParamsTest($anything) {
        dump($anything);
    }

クエリパラメータやPOSTデータと同時に扱う場合は、コントローラメソッドの引数を複数書きます。

public function routeParamsTest(Request $request, $anything) {
    dump($request->all());
    dump($anything);
}
https://127.0.0.1:8000/route_params/100?foo=100&bar=200

コメントを残す

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