Получить URI перед привязкой параметров

В моем маршрутизаторе Slim Framework 3 у меня есть следующий маршрут: /account/{username}

В моем промежуточном программном обеспечении, когда я получаю URI запроса, он будет выглядеть примерно так /account/jordan. Возможно ли в моем промежуточном программном обеспечении получить строку URI до привязки параметра имени пользователя?

В своем промежуточном программном обеспечении я хотел бы получить строку, которую я определил в своих маршрутах: /account/{username}

Спасибо


person Jordan    schedule 24.11.2017    source источник


Ответы (2)


Аргументы из маршрута доступны в routeInfo, который является атрибутом запроса, вы можете использовать его с

$routeInfo = $request->getAttributes('routeInfo');
$args = $routeInfo[2];
$username = $args['username'];

routeInfo доступен только при включении параметра determineRouteBeforeAppMiddleware следующим образом:

$settings = ['determineRouteBeforeAppMiddleware' => true];
$app = new \Slim\App(['settings' => $settings]);
person jmattheis    schedule 24.11.2017
comment
Я хочу строковый литерал /account/{username} без привязки параметров, спасибо - person Jordan; 26.11.2017

Вы можете найти всю информацию о маршруте в атрибуте route объекта $request. Параметр determineRouteBeforeAppMiddleware должен быть установлен на true.

$route = $request->getAttribute('route');

// do something with that information
$name = $route->getName();
$groups = $route->getGroups();
$methods = $route->getMethods();
$arguments = $route->getArguments();
person odan    schedule 27.11.2017