Laravelでのルーティングに関して。
惰性で使っていたんですが、これを機にしっかりと整理してみようかと。あくまで頻出パターンのみです。
ディフォルトだとroutes/web.phpが読み込まれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
1 Route::get('', 'ItemController@index'); 2 Route::get('items/view/{id}', 'ItemController@view'); 3 Route::get('sitemap', 'SitemapController@index')->name('Sitemap'); 4 Route::group(['prefix' => 'auth'], function () { Route::match(['get','post'],'login', 'Auth\LoginController@login')->name('login'); Route::get('logout', 'Auth\LoginController@logout')->name('logout'); }); //管理画面 5 Route::group(['prefix' => 'auth','middleware' => 'auth'], function () { Route::get('home', 'Auth\LoginController@index')->name('AdminHome'); }); |
1 URL直下にGETでアクセスしたらItemController@indexに飛びますよ、という命令。ちなみにPOSTの場合はもちろんここがPOSTになる。
2 詳細ページなどパラメータを含んだ場合は変数をこのように定義できる。
3 特定のルーティングに対して名前をつけることができ、このようにしておくとコントローラーやviewでRoute(‘Sitemap’)と登録しておくと一気に呼び出すことができる。
4 グループとして一括して何らかの指定をしたいとき。このように書くとfunctionでかこまれた中は全て共通のprefixであるauthがつき、それぞれ/auth/login,/auth/logoutでアクセスができる。
5ミドルウェア登録。グループの中で囲った中ではauthというミドルウェアが有効になるという意味。