2016-11-14 22 views
0

在斯利姆3路由路徑參數我有這取決於$args相同的動作組:獲得中間件

$this->group('{id}/', function() { 
    $this->get('first/', function (Request $req, Response $res, $args) { 
     $myData = operations($args['id']); 
     ... 
    }); 

    $this->post('second/', function (Request $req, Response $res, $args) { 
     $myData = operations($args['id']); 
     ... 
    }); 
}); 

我那些常用的操作轉移到更高的水平。 當我讀它可能是中間件,但在中間件我不能(或不知道如何)訪問$args

->add(function (ServerRequestInterface $request, ResponseInterface $response, callable $next) { 
    //how to get arguments? 
    $request = $request->withAttribute('myData', operations($id); 
    $response = $next($request, $response); 

    return $response; 
}); 

回答

2

可以與路由信息屬性的第三項訪問路線PARAMS:

$routeParams = $request->getAttribute('routeInfo')[2];