Laravel5.5でのRoute::groupの使い方についての備忘記録

urlのprefixや名前空間、ミドルウェアなどルートごとに設定するのではなくまとめてグループ化して設定できる。

https://www.larajapan.com/2016/08/03/routes%E3%82%92%E4%BD%BF%E3%81%84%E3%81%93%E3%81%AA%E3%81%99%EF%BC%88%EF%BC%93%EF%BC%89prefix%E3%81%A7group%E3%82%92%E5%88%86%E5%89%B2/

Route::group(['middleware' => 'web'], function () {
    Route::get('user/login', 'User\Auth\AuthController@loginForm');
    Route::post('user/login', 'User\Auth\AuthController@login');
    Route::get('admin/login', 'Admin\Auth\AuthController@loginForm');
    Route::post('admin/login', 'Admin\Auth\AuthController@login');
});

これがこうなる↓

Route::group(['prefix' => 'user', 'namespace' => 'User', 'middleware' => 'web'], function () {
    Route::get('login', 'Auth\AuthController@loginForm');
    Route::post('login', 'Auth\AuthController@login');
});
 
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'web'], function () {
    Route::get('login', 'Auth\AuthController@loginForm');
    Route::post('login', 'Auth\AuthController@login');
});

管理者認証が必要なルーティングとかもauth:adminみたいにすればまとめてできる

Route::group(['prefix' => 'admin', 'middleware' => 'auth:admin'], function() {
    Route::post('logout',   'Admin\LoginController@logout');
    Route::get('home',      'Admin\HomeController@index');
});

prefixは
http://example.com/admin/home
みたいな感じになる

シェアする

  • このエントリーをはてなブックマークに追加

フォローする