我希望将route参数作为中间件参数传递,类似这样
Route::get('foo/{id}', ['middleware' => 'bar:{id}', function(){
});
怎么做?
答案 0 :(得分:4)
您可以从请求变量中获取它:
Route::get('foo/{id}', ['middleware' => 'bar', function(){
});
public function handle($request, Closure $next) {
$id = $request->id;
}
在
bar:id
如果要将字符串id
传递给中间件,则使用。
答案 1 :(得分:1)
如果在控制器的构造函数中设置中间件,则可以传递动态中间件变量。
public function __construct()
{
$this->middleware('bar:'.request()->id);
}