哪里不支持了 你的namespace引用是不是有問題
Route::group('/api', function () {
Route::group('/v1', function () {
Route::any('/index/index', [\app\api\controller\v1\Index::class,'index']);
});
Route::group('/v2', function () {
Route::any('/index/index', [\app\api\controller\v2\Index::class,'index']);
});
});
你可以換種寫法。在 app 下直接建 v1、v2 等子目錄,再將 controller 等放進(jìn)子目錄中。
這只是一個可用 demo,不確定你后面會不會遇到其它坑。
前天也遇到此問題,自動路由沒那么多層級,手動寫路由或改下內(nèi)核吧。
vendor\workerman\webman-framework\src\App.php 大約452行,添加類似如下代碼,試用了好像都正常。
// 再多級 2021-04-18 10:04 Wolix
if(count($explode) > 3){
$action = End($explode); // 最后這個為action
array_pop($explode); // 去掉最后的那個action
array_shift($explode); //去掉第一個
$controller = \implode("\\", $explode);
$controller_class = "app\\$app\\controller\\$controller";
if (static::loadController($controller_class) && \is_callable([$instance = static::$_container->get($controller_class), $action])) {
return [
'app' => $app,
'controller' => \get_class($instance),
'action' => static::getRealMethod($controller_class, $action),
'instance' => $instance,
];
}
}
// 再多級 2021-04-18 10:04 Wolix end
return false;