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');
问题:我无法在中间件中将 {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');