问题:我无法在中间件中找到{id}参数。我的中间件需要获取{id}参数,以验证Auth :: user()是否是指定组的所有者。
请求示例:groups / admin / open / 4 - >第4组将开放。
我有什么:
路线:
Route::post('groups/admin/open/{id}', 'GroupController@opengroup')->middleware(['auth','owner']);
我的中间件('所有者')仍然是空的。
我尝试了什么: 1.在函数中添加$ id参数(就像在控制器中一样),如下所示:
public function handle($request, /* Added -> */ $id, Closure $next)
{
dd(Input::get('id'));
return $next($request);
}
这会返回错误:
Argument 3 passed to App\Http\Middleware\RedirectIfNotOwner::handle() must be an instance of Closure, none given
最后,$ id的不同位置会导致错误:
Missing argument 3 for App\Http\Middleware\RedirectIfNotOwner::handle()
我尝试了2:我曾经想过要改变我的网址
请求示例:groups / admin / open?groupparam = 4
并使用
Input::get('groupparam');
但这迫使我对我的控制器等进行更改。仍然可以选择。
询问的原因:此外,我相信Laravel也有能力在中间件中检索{id} params,非常漂亮。我只是不知道如何。
你能帮助我吗?
谢谢,
Eltyer
答案 0 :(得分:5)
您可以使用以下命令轻松获取路径中间件中的路由参数:
$id = $request->route('id');