🐣
LaravelにRouteファイルを追加する
概要
表側と管理画面側でRouteファイルを分けたくなったため調査した内容を記録しておく
環境
Laravel5.8(6系まで大丈夫なのは確認しています)
設定
App/Providers/RouteServiceProvider.phpにルートの追記をする。
今回はmapAdminRoutesを定義してmapメソッドに追加する。
prefixやmiddlewareの設定もできるため、必要なら設定をする。
Routeファイルの設定
RouteServiceProvider.php
<?php
class RouteServiceProvider extends ServiceProvider
{
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
// 書き足す
$this->mapAdminRoutes();
//
}
// ...
// middlewareのグループは複数指定できるため、webとadminを指定する
protected function mapAdminRoutes()
{
Route::prefix('admin')
->middleware(['web', 'admin'])
->namespace($this->namespace)
->group(base_path('routes/web_admin.php'));
}
}
Middlewareの設定
今回はadminRouteのmiddlewareに「admin」を設定したため、middlewareGroupsにadminを追加する。
Kernel.php
<?php
class Kernel extends HttpKernel
{
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
// ...
'admin' => [
// admin側で利用するmiddlewareを記述する
],
// ...
];
}
Routeの設定
adminのRouteファイルはweb_admin.phpとしたのでそちらに記入していく。
routes/web_admin.php
<?php
use Illuminate\Routing\Route;
// prefix=adminの設定をしているので/adminの記述は必要なし
Route::get('/dashboard', 'Admin\DefaultController@dashboard');
Discussion