Php 在控制器动作之前,是否有办法访问Laravel路线参数?

Php 在控制器动作之前,是否有办法访问Laravel路线参数?,php,laravel,laravel-4,routing,Php,Laravel,Laravel 4,Routing,我正在使用Laravel4编写一个api,其中URL的一部分将决定从哪个数据库中提取数据。将有大量数据库,每个数据库都具有相同的架构,例如: mystuff_arizona mystuff_florida ... 这是给定的(我必须满足的要求) 因此,以下URL(通过id“显示”资源) 可以使用相同的控制器,但我需要在Laravel中添加一些代码(在基本控制器或“before”函数中),以根据URL设置正确的数据库连接 我一直在做这样的事情: Route::group(['prefix' =&

我正在使用Laravel4编写一个api,其中URL的一部分将决定从哪个数据库中提取数据。将有大量数据库,每个数据库都具有相同的架构,例如:

mystuff_arizona
mystuff_florida
...
这是给定的(我必须满足的要求)

因此,以下URL(通过id“显示”资源)

可以使用相同的控制器,但我需要在Laravel中添加一些代码(在基本控制器或“before”函数中),以根据URL设置正确的数据库连接

我一直在做这样的事情:

Route::group(['prefix' => '{state}/api'], function($state=null)
{
    Route::group(['prefix' => 'v1'], function()
    {
        Route::resource('items', 'ItemsController');
    });
});
但是,在我的控制器中,我需要将$state参数添加到show()方法中,尽管我不打算在那里使用它

//public function show($state,$id) // <<-- this works
public function show($id) // <<-- this fails
{
    $record = Item::findOrFail($id);
    return Response::json( $record->toArray()) );
}

//公共函数show($state,$id)//您可以使用路由筛选器

Route::filter('name', function()
{
    $routeParameters = Route::getCurrentRoute()->getParameters();
    $state = $routeParameters['state'];
    Route::getCurrentRoute()->setParameters($routeParameters);

    // Do something with $state

});

您可以使用路由筛选器

Route::filter('name', function()
{
    $routeParameters = Route::getCurrentRoute()->getParameters();
    $state = $routeParameters['state'];
    Route::getCurrentRoute()->setParameters($routeParameters);

    // Do something with $state

});

您可以使用路由筛选器

Route::filter('name', function()
{
    $routeParameters = Route::getCurrentRoute()->getParameters();
    $state = $routeParameters['state'];
    Route::getCurrentRoute()->setParameters($routeParameters);

    // Do something with $state

});

您可以使用路由筛选器

Route::filter('name', function()
{
    $routeParameters = Route::getCurrentRoute()->getParameters();
    $state = $routeParameters['state'];
    Route::getCurrentRoute()->setParameters($routeParameters);

    // Do something with $state

});