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 添加 中间件组 正常

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

描述没写清啊。 是控制器里获取中间件数据没对? 你那个控制器是在哪个位置?用了什么中间件? 看还少了个online_user中间件,明显就是在某个位置被重置为默认的了吧

3年前 评论
deatil (作者) 3年前
dusty (楼主) 3年前
deatil (作者) 3年前
dusty (楼主) 3年前

报错信息贴出来

3年前 评论
dusty (楼主) 3年前
Su (作者) 3年前
dusty (楼主) 3年前

Laravel Framework 8.83.3

PHP 8.1.1

扩展包在无修改的情况下 pushMiddlewareToGroup 在 laravel8 中有效

3年前 评论

是不是没有执行 CoreServiceProvider.php ?

3年前 评论
dusty (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!