从路由关闭使用控制器命名空间

时间:2016-05-20 10:47:30

标签: 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)
}

我想知道是否有可能有像

这样的东西
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)
}

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

1 个答案:

答案 0 :(得分:2)

我想这样做的正确方法是创建中间件,但定义不是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
});

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