4

有没有办法干净地将所有以 开头的路线分组admin/?我尝试过这样的事情,但它当然没有用:

Route::group('admin', function()
{
    Route::get('something', array('uses' => 'mycontroller@index'));
    Route::get('another', array('uses' => 'mycontroller@second'));
    Route::get('foo', array('uses' => 'mycontroller@bar'));
});

对应这些路线:

admin/something
admin/another
admin/foo

我当然可以直接在所有这些路由前面加上前缀admin/,但我想知道是否可以按照我的方式来做。

谢谢!

4

2 回答 2

3

Laravel 4您现在可以使用prefix

Route::group(['prefix' => 'admin'], function() {

    Route::get('something', 'mycontroller@index');

    Route::get('another', function() {
        return 'Another routing';
    });

    Route::get('foo', function() {
        return Response::make('BARRRRR', 200);
    });

    Route::get('bazz', function() {
        return View::make('bazztemplate');
    });

});
于 2013-06-24T21:23:07.877 回答
3

抱歉不行。路由组并非设计为那样工作。这取自 Laravel 文档。

路由组允许您将一组属性附加到一组路由,从而使您的代码保持整洁。

路由组用于将一个或多个过滤器应用于一组路由。您正在寻找的是捆绑包!

推出捆绑包!

从外观上看,捆绑包是您所追求的。在您的 bundles 目录中创建一个名为 'admin' 的新捆绑包,并将其注册到您的 application/bundles.php 文件中,如下所示:

'admin' => array(
    'handles' => 'admin'
)

句柄键允许您更改捆绑包将响应的 URI。因此,在这种情况下,对admin的任何调用都将通过该捆绑包运行。然后在你的新包中创建一个 routes.php 文件,你可以使用(:bundle)占位符注册处理程序。

// Inside your bundles routes.php file.
Route::get('(:bundle)', function()
{
    return 'This is the admin home page.';
});

Route::get('(:bundle)/users', function()
{
    return 'This responds to yoursite.com/admin/users';
});

希望能给你一些想法。

于 2012-09-19T00:38:39.903 回答