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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 12

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

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

报错信息贴出来

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

Laravel Framework 8.83.3

PHP 8.1.1

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

2年前 评论

是不是没有执行 CoreServiceProvider.php ?

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

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