Laravel 在中间件中获取 {id} 获取参数

Laravel getting {id} get parameter in middleware

问题:我无法在中间件中将 {id} 参数设置为 'found'。我的中间件需要获取 {id} 参数,以验证 Auth::user() 是否是指定组的所有者。

请求示例:groups/admin/open/4 --> 第4组将被打开。

我有:

路线:

Route::post('groups/admin/open/{id}', 'GroupController@opengroup')->middleware(['auth','owner']);

我的中间件 ('owner') 仍然是空的。

我尝试了什么: 1. 在函数中添加一个 $id 参数(就像你在 Controllers 中做的那样),像这样:

public function handle($request, /* Added -> */ $id, Closure $next)
{

    dd(Input::get('id'));

    return $next($request);
}

这returns一个错误:

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:我想过的是把我的url改成这样

请求示例:groups/admin/open?groupparam=4

并使用

Input::get('groupparam');

但这迫使我对我的控制器等进行更改。这仍然是一个选项。

提问原因:此外,我相信 Laravel 也有能力在中间件中检索 {id} 参数,非常漂亮。我就是不知道怎么办。

你能帮帮我吗?

谢谢,

埃尔提尔

您可以通过以下方式在路由中间件中轻松获取路由参数:

$id = $request->route('id');