Laravel5/URLとのマッピング

Laravel5/URLとのマッピング

設定記述によるマッピング

app/Http/routes.php に設定を記述することによりマッピングできる

直指定マッピング

このように何かで来たらどのコントローラーのどのメソッドを起動するかを直接書く

Route::get('hoges', 'HogesController@getIndex');

暗黙マッピング

このように書くと、コントローラーのメソッド記述に基いて自動的にルーティングが決定される

Route::controller('hoges', 'HogesController');

便利そうなのだが、これをそのまま書くと

Domain Method URI Name Action Middleware
GET|HEAD hoges/index/{one?}/{two?}/{three?}/{four?}/{five?} App\Http\Controllers\HogesController@getIndex
GET|HEAD hoges App\Http\Controllers\HogesController@getIndex
GET|HEAD|POST|PUT|PATCH|DELETE hoges/{_missing} App\Http\Controllers\HogesController@missingMethod

このようなルーティングが自動的に追加される。コントローラの記述ミスで脆弱性を造り込みそうなのであんまり心が進まない

最後のルーティングは該当のメソッドが無かった場合の処理をmissingMethodというメソッドに書けよということで、その引数にその無かったメソッド名を先頭としたパラメータの配列が来る。これを受けてネーヨとか出す。

マッピングの確認

コマンドで実際の設定がどのようにマッピングされているか確認することができる

$ php artisan route:list
php/laravel/laravel5/url_mapping.txt · 最終更新: 2019-07-08 19:31 by ore