Laravel 4更高效的路由?

时间:2014-04-23 07:57:11

标签: php laravel-4 laravel-routing

我有这样的路由案例:

//  Game
Route::get('game/p/{action}', 'GameController@getPage');
Route::get('game/e/{id}', 'GameController@edit');

Route::post('game/p/add', 'GameController@add');

//  GameCategory
Route::get('gamecategory/p/{action}', 'GameCategoryController@getPage');
Route::get('gamecategory/e/{id}', 'GameCategoryController@edit');

Route::post('gamecategory/p/add', 'GameCategoryController@add');

//  Deposit
Route::get('deposit/p/{action}', 'DepositController@getPage');
Route::get('deposit/e/{id}', 'DepositController@edit');

Route::post('deposit/p/update', 'DepositController@update');

从这里可以看出,代码非常重复,但某些模块只使用某些控制器,它们的路由模式类似。

我一直在谷歌搜索,发现Route::resource可以缩短这个但我不知道如何在我的情况下实现它。有人能帮我吗?感谢

1 个答案:

答案 0 :(得分:1)

由于您的路由架构似乎非常传统,因此没有可以实现您想要的帮助方法。您可以做的是编写自己的帮助函数,该函数采用路径名称('游戏','游戏类别','存款')和控制器名称('GameController'等)并生成您想要的路线从那起。

function _register_routes($path, $controller)
{
    Route::get("{$path}/p/{action}", "{$controller}@getPage");
    Route::get("{$path}/e/{id}", "{$controller}@edit");
    Route::post("{$path}/p/add", "{$controller}@add");
}

_register_routes('game', 'GameController');
_register_routes('gamecategory', 'GameCategoryController');