概要
ルートパラメーターがURIに含まれて送られてきた時、ルーティングの段階で、正規表現を使って検証することができる。
検証の結果正規表現にマッチすれば処理され、マッチしなければ”404 Not Found”エラーとなる。
ルーティングの書き方
以下の様に、通常のルーティングのget()
メソッドにwhere()
を適用する。
1 |
Route::get('パス/パラメーター', ルーティング先)->where('パラメーター', '正規表現'); |
たとえば以下は、ルートパラメーターが2桁の整数(00や01などを含む)であることを検証している。数字2桁ならValidと表示され、数値の桁が違ったり、数字以外の文字が含まれている場合は404エラーとなる。
1 2 |
Route::get('/request_where/{param}', function() { return 'Valid';}) ->where('param', '^\d{2}$'); |
リクエスト先がコントローラー・アクションでもこれは使える。以下の例ではリクエストパラメーターが数字2桁の場合だけアクションが実行され、そうでなければ404エラーとなる。
1 2 |
Route::get('/request_where/{param}', 'SampleController@requestWhere') ->where('param', '^\d{2}$'); |