Slim 3 - 如何在路由上添加多个中间件类?

时间:2016-06-24 07:09:39

标签: slim

我知道如何在$app中添加多个中间件类:

$app->add( new Middlewares\VerifyCsrfToken() );
$app->add( new Middlewares\RemoveTrailingSlash() );

但路线怎么样?

$app->get('/', function($request, $response){
     return $response;
})->add( new Middlewares\VerifyCsrfToken() )
  ->add( new Middlewares\RemoveTrailingSlash() );

1 个答案:

答案 0 :(得分:7)

如评论中所述,add()会返回Route对象的实例,因此您只需将多个add()链接在一起即可。

unit test显示了如何执行此操作:

$app = new App();

$app->get('/', function ($req, $res) {
    return $res->write('Center');
})->add(function ($req, $res, $next) {
    $res->write('In1');
    $res = $next($req, $res);
    $res->write('Out1');
    return $res;
})->add(function ($req, $res, $next) {
    $res->write('In2');
    $res = $next($req, $res);
    $res->write('Out2');
    return $res;
});