クエリパラメータとルートパラメータ
クエリパラメータ
クエリパラメータは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
