1

我想创建一个允许多个段的动态路线。

example.com/segment1
example.com/segment1/segment2/
example.com/segment1/segment2/segment3

使用这个:

Route::get('{slug}', 'PagesController@index');

给了我我的第一个动态片段,当然我可以这样做:

Route::get('{slug1}/{slug2}', 'PagesController@index');

等等,但我确信有更好的方法来做到这一点。

4

1 回答 1

1

我相信使用时的一个复杂问题Route::get('{slug1}/{slug2}', 'PagesController@index');是处理所有可能的segment1/segment2/输入foo/bar/。你可能会得到很多不必要的逻辑。

这可能不是最好的解决方案,但我相信小组可以很好地完成您想要完成的工作。

Route::group(array('prefix' => 'segment1'), function() {

    Route::get('/', 'ControllerOne@index');

    Route::group(array('prefix' => 'segment2'), function() {

        Route::get('/', 'ControllerTwo@index);
        Route::get('/segment3', 'ControllerThree@index');

    });
});

仅处理三个示例时可能会有些混乱,但最终可能会有所帮助并提供更好的层次结构以供使用。

before这对使用和after过滤器也有好处。就像所有segment2端点一样,如果你想执行一些过滤器,而不是将过滤器添加到所有单独的端点,你可以将它添加到组中!

Route::group(array('before' => 'someFilter', 'prefix' => 'segment2'), function() {
    // ... ...
});
于 2013-08-08T16:04:43.347 回答