我正忙于在 Laravel 5.1 中构建一个 Restful API,其中 API 版本通过标头传递。这样,我可以对功能进行版本控制,而不是复制和粘贴整个路由组并增加版本号。
我遇到的问题是我想要版本化的方法,IE:
public function store_v1 (){ }
我在路由上添加了一个中间件,我从标头中捕获版本,但现在需要修改请求以从控制器中选择正确的方法。
应用程序/Http/routes.php
Route::group(['middleware' => ['apiversion']], function()
{
Route::post('demo', 'DemoController@store');
}
app/Http/Middleware/ApiVersionMiddleware.php
public function handle($request, Closure $next)
{
$action = app()->router->getCurrentRoute()->getActionName();
// dd($action)
// returns "App\Http\Controllers\DemoController@store"
}
从这里开始,我会将标头版本附加到 $action,然后通过 $request 传递它,以便它到达正确的方法。
好吧,无论如何,这就是理论。
关于如何将动作注入路线的任何想法?