基于约定的laravel路由

时间:2016-10-30 18:55:04

标签: laravel routing

我试图根据惯例设置一个简单的路由系统。 我的应用程序将具有此结构

Http
--Controllers
----Admin
------User.php
----Books
------Add.php
----etc...

我希望能够添加新的文件夹和控制器,而无需手动将路由添加到web.php文件中。 例如,我希望路由使用User.php控制器响应/ Admin / User URL。

我正在尝试这样的事情,但我不明白如何编写内部路由器...

Route::any('/{module}/{action?}', function($module, $action = 'index') {
    Route::get('*',$module.'\'.$action.'@index' );
});

似乎Rout:get(' *' ......永远不会匹配。

PS控制器命名空间是正确的,我重新加载了composer。 如果调用harcoded,控制器就会工作。

我也试图逃避' \'

$r=$module.'\\'.$action.'\\'.$action.'Ctl@index';
Route::get('/',$r );

但没有结果。该路线被拦截但我没服用

1 个答案:

答案 0 :(得分:0)

我似乎想出了这个

Route::get('/{module}/{action}', function($module,$action) {

  return App::make('\App\Http\Controllers\\'
                   .$module.'\\'.$action)->callAction('index', []);

  });

还有其他更好的方法吗?