laravel9 pushMiddlewareToGroup 失效 哪里出了问题?
Laravel Version: 9.3.1
PHP Version: 8.1.1
Description:
laravel9 使用包扩展开发在ServiceProvider 中 pushMiddlewareToGroup 失效
在 ServiceProvider 里设置两个中间件到 api 中间件组
但是在控制器里 却没有设置的这两个中间件
哪里出了问题?
CoreServiceProvider.php
public function boot()
{
app('router')->pushMiddlewareToGroup('api', OnlineUser::class);
app('router')->pushMiddlewareToGroup('api', ForbiddenUser::class);
dd(app('router')->getMiddlewareGroups());
}
output
array:3 [
"web" => array:6 [
0 => "App\Http\Middleware\EncryptCookies"
1 => "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
2 => "Illuminate\Session\Middleware\StartSession"
3 => "Illuminate\View\Middleware\ShareErrorsFromSession"
4 => "App\Http\Middleware\VerifyCsrfToken"
5 => "Illuminate\Routing\Middleware\SubstituteBindings"
]
"api" => array:6 [
0 => "Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful"
1 => "throttle:api"
2 => "Illuminate\Routing\Middleware\SubstituteBindings"
3 => "online_user"
4 => "HighKer\Core\Middleware\OnlineUser"
5 => "HighKer\Core\Middleware\ForbiddenUser"
]
"admin" => array:6 [
0 => "admin.auth"
1 => "admin.pjax"
2 => "admin.bootstrap"
3 => "admin.permission"
4 => "admin.session"
5 => "admin.upload"
]
]
AuthController.php
public function me()
{
dd(app('router')->getMiddlewareGroups());
$user = Auth::user()->loadMissing('info');
return $this->success(UserResource::make($user));
}
output
array:3 [
"web" => array:6 [
0 => "App\Http\Middleware\EncryptCookies"
1 => "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
2 => "Illuminate\Session\Middleware\StartSession"
3 => "Illuminate\View\Middleware\ShareErrorsFromSession"
4 => "App\Http\Middleware\VerifyCsrfToken"
5 => "Illuminate\Routing\Middleware\SubstituteBindings"
]
"api" => array:3 [
0 => "Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful"
1 => "throttle:api"
2 => "Illuminate\Routing\Middleware\SubstituteBindings"
]
"admin" => array:6 [
0 => "admin.auth"
1 => "admin.pjax"
2 => "admin.bootstrap"
3 => "admin.permission"
4 => "admin.session"
5 => "admin.upload"
]
]
在 /app/Http/Kernel.php 添加 中间件组 正常
描述没写清啊。 是控制器里获取中间件数据没对? 你那个控制器是在哪个位置?用了什么中间件? 看还少了个online_user中间件,明显就是在某个位置被重置为默认的了吧
报错信息贴出来
Laravel Framework 8.83.3
PHP 8.1.1
扩展包在无修改的情况下 pushMiddlewareToGroup 在 laravel8 中有效
是不是没有执行
CoreServiceProvider.php
?