在Laravel上使用默认前缀进行组路由

时间:2014-02-20 13:10:06

标签: laravel laravel-4

我想知道:我可以为一组路线设置某种默认参数。 (例如)我有一个网络服务。这将使用AWS使用的相同类型的身份验证。到目前为止没有什么新东西......无论是请求,我都需要有这样的结构:

myapp.com/v1/{hashed_value}/{timestamp}/{parameters}

其中:

v1 - >版本控制(o?rly?!)
hashed_value - >是我发送请求的所有信息的哈希(URL本身)。 时间戳 - >要验证某人是否有人坚持破解并将其发回。到期时间。
参数 - >我们都需要它们,不是吗?也许(可能会)更多他们一个。

那么,在这种情况下,有一种虚拟的方式,它包括将这3个变量放在所有(!!)我的路线中。但那不是我想要的!我想要“Laravel方式”做到这一点! 如果我能够,我不知道,把它作为一组路线的前缀(那些是变量),在这种情况下所有这些,“那将是伟大的”。我不知道是否有办法做到这一点......有吗?

1 个答案:

答案 0 :(得分:1)

我认为你想要的绝对是可能的。我把我的routes文件的一部分拿出来,并更改了一些名称,以明确它的作用。我的建议是先将参数放在最后,然后将未知数(如哈希和时间戳)放在最后。

Route::group(array('prefix' => 'api'), function()
{
    //the routes for all API calls
    Route::group(array('prefix' => '/v1'), function()
    {
        //for version 1
        Route::group(array('prefix' => '/parameter_type_1', 'before' => 'loggedin'), function()
        {
            //for parameter_type_1 requests
            Route::get('/getThing/{hash}/{timestamp}', 'APIController@getThing');

        Route::group(array('prefix' => '/parameter_type_2', 'before' => 'loggedin'), function()
        {
            //for parameter_type_2 requests
            Route::get('/getNewThing/{hash}/{timestamp}',  'APIController@getNewThing');
        });
    });

});

一些文档链接: