Php 如何从Laravel 5中的请求中检索url参数?

Php 如何从Laravel 5中的请求中检索url参数?,php,laravel,laravel-5,laravel-middleware,laravel-request,Php,Laravel,Laravel 5,Laravel Middleware,Laravel Request,我想用中间件中的模型执行某些操作。下面是我想要实现的一个例子: 公共函数句柄($request,Closure$next) { $itemId=$request->param('item');//isBad())返回重定向(route('don_sure')); 返回$next($request); } 我的问题是,如何从$request中检索所需的参数?如果参数是URL的一部分,并且此代码正在中间件中使用,则您可以从给定的路由通过其名称访问参数: public function handle

我想用中间件中的模型执行某些操作。下面是我想要实现的一个例子:

公共函数句柄($request,Closure$next)
{
$itemId=$request->param('item');//isBad())返回重定向(route('don_sure'));
返回$next($request);
}

我的问题是,如何从
$request
中检索所需的参数?

如果参数是URL的一部分,并且此代码正在中间件中使用,则您可以从给定的路由通过其名称访问参数:

public function handle(Request $request, Closure $next)
{
    $itemId = $request->item;
    //..............

}
public function handle($request, Closure $next)
{
    $itemId = $request->route()->getParameter('item');
    $item   = Item::find($itemId);

    if($item->isBad()) return redirect(route('dont_worry'));

    return $next($request);
}
这是基于如下路由:
'/getItem/{item}'

在Laravel 5.5之后使用此选项


“request->param('item')”你是说request GET/POST参数吗?@pbwned只是一个url参数。例如,从
/item/{id}
routeI中提取
id
部分。我得到错误:“getParameter()”方法不存在。我得到了如下参数:
$request->route()->parameters['item']
Me<代码>$request->route('item')适合我。Laravel5.7$request->route()->参数['item']和$request->route('item')也适用于Laravel5.5。但是“getParameter()”没有
public function handle($request, Closure $next)
{
    $item = Item::find($request->route()->parameter('item'));
    if($item->isBad()) return redirect(route('dont_worry'));
    return $next($request);
}