- 广场
-
- 搜索中...
- 本文档内搜索
zxf/tools 使用手册
多模块路由
自动加载路由组中间件
在modules.php
配置文件中,可以通过配置auto_use_middleware_groups
属性,决定加载 Modules 模块里面的路由时候, 是否根据路由文件名 自动加载 \App\Http\Kernel::class->$middlewareGroups
里面 已经存在的 中间件
/*
|--------------------------------------------------------------------------
| 加载 Modules 模块里面的路由的时候 ,是否根据路由文件名 自动加载 `\App\Http\Kernel::class`->$middlewareGroups 里面 存在的 中间件
|--------------------------------------------------------------------------
|
| 默认开启
|
*/
'auto_use_middleware_groups' => true,
例如开启了上面的配置,在自动加载 Modules > 模块 > Routes > admin.php(或其他路由文件)
时候,会去\App\Http\Kernel::class->$middlewareGroups
配置里面 查看 是否配置了名字为admin
的路由中间件组
,如果存在,则admin.php 里面的路由都会使用admin
路由中间件组
示例
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Modules\Core\Http\Middleware\WebAuthCommonPrivilege::class
],
'admin' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Modules\Core\Http\Middleware\AdminAuthPrivilege::class
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
多模块路由前缀
在modules.php
配置文件中,可以通过配置route_need_add_prefix_and_name
属性,决定加载 Modules 模块里面的路由模块时候, 是否根据路由文件名 自动加载路由前缀和路面名
/*
|--------------------------------------------------------------------------
| 加载模块 Modules 模块路由时候 xxx.php 文件里面的路由需要自动添加上同名 `xxx`前缀和 `xxx.` 路由命名 的路由文件
|--------------------------------------------------------------------------
|
| 默认['api'] 表示 api.php 里面的路由全部加上`api`前缀和 `api.` 路由命名
|
*/
'route_need_add_prefix_and_name' => ['api'],
例如:
'route_need_add_prefix_and_name' => ['api','admin','crm'],
则表示在加载路由api.php
、admin.php
、crm.php
的时候,里面的路由都分别自动加上了api
、admin
、crm
路由前缀和api.
、admin.
、crm.
命名
多模块中的 api.php
路由文件中的路由,在加载的时候就自动加上了api
前缀了,
加载时候只有api.php
路由会加载api
中间件,其他路由会自动加载web
中间件
等同于自动加上了下面这样的一层路由组
Route::prefix('admin')->name('admin.')->group(function () {
...
});