LaravelにRouteファイルを追加する

1 min読了の目安(約1500字TECH技術記事

概要

表側と管理画面側で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');