使用路由闭包中的控制器命名空间

myo*_*yol 2 php laravel laravel-5 laravel-5.2

我想要Route::group()使用闭包而不是使用 laravel 语法来使用特定的命名空间。所以代替

Route::group(['namespace' => 'My\Namespace\For\Controllers'), function () {

     // TestController found in `My\Namespace\For\Controllers`
     Route::resource('resource/url', TestController@test)
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能有类似的东西

Route::group(function () {

     // Some logic for using the `My\Namespace\For\Controllers` 
     // namespace for all routes within this group

     // Controller found in `My\Namespace\For\Controllers`
     Route::resource('resource/url', Controller@test)
}
Run Code Online (Sandbox Code Playgroud)

我想要这个功能,所以我可以根据传递给路由的参数动态决定控制器命名空间。

Ale*_*nin 5

我想正确的方法是创建中间件,但绝对不是route.php文件。

https://laravel.com/docs/5.2/middleware

更新

如果您只需要为组中的所有控制器设置命名空间,您可以这样做:

Route::group(['namespace' => 'My\Namespace\For\Controllers'], function() {
    // Controllers within the "My\Namespace\For\Controllers" namespace
});
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/docs/5.2/routing#route-group-namespaces