2016-11-14 10 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]; 

 Смежные вопросы

  • Нет связанных вопросов^_^