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

Posted

技术标签:

【中文标题】Laravel 在中间件中获取 id 获取参数【英文标题】:Laravel getting id get parameter in middlewareLaravel 在中间件中获取 id 获取参数 【发布时间】:2016-04-15 17:02:23 【问题描述】:

问题:我无法在中间件中“找到”id 参数。我的中间件需要获取 id 参数,以验证 Auth::user() 是否是指定组的所有者。

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

我有什么:

路线:

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

我的中间件(“所有者”)仍然是空的。

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

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 参数,非常漂亮。我只是不知道怎么做。

你能帮帮我吗?

谢谢,

埃尔泰尔

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

它带来了对象。和蔼可亲!

以上是关于Laravel 在中间件中获取 id 获取参数的主要内容,如果未能解决你的问题,请参考以下文章

php Laravel在中间件中获取路由参数

Laravel 5:如何获取中间件中的参数列表

Laravel 在控制器外部获取路由参数

通过 id 获取记录并使用 Laravel 和 eloquent 查询与“中间”的关系

Laravel全局传递参数

Laravel 5 - 无法从 redirect::route 获取参数