Laravel中间件获取路由参数

时间:2016-03-03 02:53:29

标签: php laravel

我正在编写像“学校俱乐部管理系统”这样的东西,并且在资源的权利授权方面遇到了一些问题。

假设有clubclub有经理,我想在用中间件管理用户之前检查用户是否是club的经理。

使用laravel 5.2

我的router看起来像这样:

Route::resource('club', 'ClubController');

我创建的中间件看起来像这样:

  public function handle($request, Closure $next)
    {
        if (!Auth::check()){
            // ask user to login
        }

        $club = Club::findOrFail($request->input('club'));
        $user = Auth::user();

        if (!$club->managers->contains($user)){
            //tell user your are not manager .
        }

        return $next($request);
}

但是我没能从requests得到俱乐部的身份。

我该如何解决这个问题?

提前致谢。

4 个答案:

答案 0 :(得分:5)

如果您正在寻找url参数,那么从中间件内部的laravel 5.2中的资源路径获取该参数的最佳方法如下所示。假设您想获取id参数表单url club / edit / {id}

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

答案 1 :(得分:1)

Woops,我在检查dd($requests)后找到了ans。

我可以使用$requests->club来获取参数。

谢谢大家。

答案 2 :(得分:1)

一个简短的语法是:

$request->route('parameter_name');

答案 3 :(得分:0)

我正在使用Laravel 5.5和

dd($request->route()->parameter('id'));
dd($request->route('id'));

为我工作