本文共 1949 字,大约阅读时间需要 6 分钟。
在 Laravel 5.5 项目中,默认有 web.php
作为主要的路由文件。如果需要添加额外的路由文件,可以按照以下步骤进行操作。
routes
文件夹。home.php
。打开 RouteServiceProvider.php
文件。
在 map
方法中,添加新的路由注册方法 mapHomeRoutes
。
在 mapHomeRoutes
方法中:
Route::prefix('home')
定义前缀。middleware('home')
定义中间件。namespace()
给路由注入控制器的命名空间。group(base_path('routes/home.php'))
包含自定义路由规则。在 map()
方法中,将 mapHomeRoutes
加入执行链:
public function map() { $this->mapApiRoutes(); $this->mapWebRoutes(); $this->mapHomeRoutes();}
mapApiRoutes(); $this->mapWebRoutes(); $this->mapHomeRoutes(); } protected function mapWebRoutes() { Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); } protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); } protected function mapHomeRoutes() { Route::prefix('home') ->middleware('home') ->namespace($this->namespace . '\Home') ->group(base_path('routes/home.php')); }}
Kernel.php
文件。$routeMiddleware
数组末尾,添加 home
对应的中间件类名:'home' => \App\Http\Middleware\VerifyHome::class,
Middleware
文件夹下,新建一个名为 VerifyHome.php
的文件。routes/home.php
文件。home
前缀下的路由规则。在 routes/home.php
中:
Route::prefix('home')->middleware('home')->group(function () { Route::get('aaa', 'HomeController@method1'); Route::get('bbb', 'HomeController@method2');});
Home
命名空间下,定义相应的控制器类:laravel.com/home/aaa
应返回 "aaa"。laravel.com/home/bbb
应返回 "bbb"。web.php
下的路由无需额外中间件。laravel.com/home/aaa
)。如有其他问题,请根据实际项目需求调整配置,并欢迎留言提问。
转载地址:http://cfgyk.baihongyu.com/