假设我在我的路由中定义了一个资源:
Route::resource('account', 'AccountController', ['only'=> ['index','update']]);
然后我让Middleware
从内部连接到Controller
作为
public function __construct() {
$this->middleware('BeforeAccount', ['only' => ['update']]);
}
假设我想访问在我的中间件中的帐户(即example.com/account/2
)之后发生的uri参数-我如何去抓取该变量?
您可以使用以下代码来实现:
public function handle($request, Closure $next)
{
$account_id = $request->route()->parameter('accounts');
//...
}
因为handle
方法接收Request
对象作为第一个参数。middleware
只在路由匹配之后才执行,因此Request
对象包含当前路由,不需要使用Route::getRoutes()->match($request)
再次匹配路由。
这样就不需要提供'Request对象了:
Route::current()->parameter('parameter');