Получить параметр Route из группового маршрута в SLIM 3 PHP

У меня проблема с получением параметра группового маршрута в промежуточном программном обеспечении, вот что я делаю

Я использую [PHP — SLIM 3 Framework]

маршрут.php

$app->group('/{lang}', function() use ($container){
   //routes ... (ignore the other routes)
})->add(new Middleware($container));

промежуточное ПО.php

//middleware.php
class Middleware {
   public function __invoke($req, $res, $next)
   {
      //here is the part which is confusing about how can i get 
      // {lang} parameter
      $req->getAttribute('route')
   }
}

person Abdul Rafay    schedule 05.03.2017    source источник


Ответы (1)


Вы можете сделать это с помощью getArguments()-метода

public function __invoke($req, $res, $next)
{
    $route = $req->getAttribute('route');
    $args = $route->getArguments();
    $lang = $args['lang'];

    return $res;
}

Примечание: вам также необходимо установить для тонкой настройки determineRouteBeforeAppMiddleware значение true. В противном случае аргумент не устанавливается в промежуточном программном обеспечении.

$container = [
    'settings' => [
        'determineRouteBeforeAppMiddleware' => true
    ]
]
$app = new \Slim\App($container);
person jmattheis    schedule 05.03.2017