Laravel中间件获取路由参数

KID*_*ney 5 php laravel

我正在编写像"学校俱乐部管理系统"这样的东西,并在资源的权利授权上遇到一些问题.

假设有club,并且club有经理,我想在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);
}
Run Code Online (Sandbox Code Playgroud)

但我没能得到俱乐部的身份requests.

我该如何解决这个问题?

提前致谢 .

小智 7

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

$request->route()->parameter('id');
Run Code Online (Sandbox Code Playgroud)


Mos*_*ufi 5

较短的语法是:

$request->route('parameter_name');
Run Code Online (Sandbox Code Playgroud)