Php Laravel中间件获取路由参数

Php Laravel中间件获取路由参数,php,laravel,Php,Laravel,我正在编写“学校俱乐部管理系统”之类的代码,遇到了一些资源权限授权方面的问题 假设有club,并且club有经理,我想先检查用户是否是club的经理,然后再使用中间件对其进行管理 使用laravel 5.2 我的路由器看起来像: public function handle($request, Closure $next) { if (!Auth::check()){ // ask user to login }

我正在编写“学校俱乐部管理系统”之类的代码,遇到了一些资源权限授权方面的问题

假设有
club
,并且
club
有经理,我想先检查用户是否是
club
的经理,然后再使用中间件对其进行管理

使用laravel 5.2

我的
路由器
看起来像:

  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);
}
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);
}
但是我无法从
请求中获取俱乐部的id

我怎样才能解决这个问题


提前谢谢。

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

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


谢谢大家。

如果您正在查找url参数,下面是从中间件中的laravel 5.2中的资源路由中获取url参数的最佳方法。假设您希望从url club/edit/{id}获取id参数

$request->route()->parameter('id');
较短的语法是:

$request->route('parameter_name');

我在拉维5.5和

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

为我工作

而且在执行findOrFail之前进行存在性检查是公平的,因为请求是否使用了数据!空($request->club)或by$request->has('club')以避免不必要的数据库读取。通过检查源代码,您可以将参数名称传递给route方法,其工作方式与此相同,
$request->route('id')