Laravel5传递路径args作为中间件args

时间:2015-10-22 16:14:17

标签: php laravel laravel-5 laravel-5.1 laravel-routing

我希望将route参数作为中间件参数传递,类似这样

Route::get('foo/{id}', ['middleware' => 'bar:{id}', function(){

});

怎么做?

2 个答案:

答案 0 :(得分:4)

您可以从请求变量中获取它:

Route::get('foo/{id}', ['middleware' => 'bar', function(){

});

public function handle($request, Closure $next) {
  $id = $request->id;
}

https://laracasts.com/discuss/channels/general-discussion/how-to-get-url-parameters-at-middleware?page=1

bar:id
如果要将字符串id传递给中间件,则使用

答案 1 :(得分:1)

如果在控制器的构造函数中设置中间件,则可以传递动态中间件变量。

public function __construct()
{
    $this->middleware('bar:'.request()->id);
}