国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Webman 嵌套路由中間件失效問題

Hanmo

bug描述

webman 使用嵌套路由后部分路由不會通過中間件

程序代碼或配置

路由配置

Route::group('/api', function () {
    Route::any('/test1', function () {
        return 'test1';
    });
    Route::group('/group', function () {
        Route::any('/test2', function () {
            return 'test2';
        });
    });
    Route::any('/test3', function () {
        return 'test3';
    });
})->middleware(TestMiddleware::class);

中間件配置

<?php

namespace app\middleware;

use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;

class TestMiddleware implements MiddlewareInterface
{
    public function process(Request $request, callable $handler): Response
    {
        return json([false]);
    }
}

期待的結果及實際結果

理論上來說訪問每個路由都應該返回 [false]

但實際,在第二層group之前的路由正常通過了中間件,返回[false],后續(xù)(包括group中的)未被攔截(實測為未通過中間件),如圖所示
截圖

重現(xiàn)bug的步驟

curl 127.0.0.1:8787/api/test1
curl 127.0.0.1:8787/api/group/test2
curl 127.0.0.1:8787/api/test3

系統(tǒng)環(huán)境及workerman/webman等具體版本

WSL 最新 webman

1400 2 0
2個回答

six

http://m.wtbis.cn/doc/webman/route.html#%E8%B7%AF%E7%94%B1%E4%B8%AD%E9%97%B4%E4%BB%B6
手冊說了不支持你這種,正確寫法

Route::group('/api', function () {
    Route::any('/test1', function () {
        return 'test1';
    });
    Route::any('/test3', function () {
        return 'test3';
    });
})->middleware(TestMiddleware::class);

Route::group('/api', function () {
    Route::group('/group', function () {
        Route::any('/test2', function () {
            return 'test2';
        });
    })->middleware(TestMiddleware::class);
});
  • 暫無評論
tanhongbin

沒事看看手冊,你發(fā)現(xiàn)你很多理解都不對,看手冊,看手冊,看手冊

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??