Slim 3-从中间件访问URI参数

时间:2018-07-17 20:38:30

标签: php slim

我有一条路由,其中​​包含我捕获到$ args变量中的参数:

$app->get('/v1/download/{transactionId}', function(Request $request, Response $response, $args) {   
...

我也在这条路线上使用中间件,并且需要$args的内容才能从中间件功能进行访问。我确定我缺少一些简单的东西,但似乎只能访问请求数据,而不能访问参数。

非常感谢您的协助!

谢谢!

1 个答案:

答案 0 :(得分:0)

您想要的是documented here

如果您有权访问请求对象,则可以获取如下路由参数:

$route = $request->getAttribute('route');
$courseId = $route->getArgument('transactionId');

编辑:您需要启用determineRouteBeforeAppMiddleware设置才能使其正常运行,因为默认情况下,路由是在执行所有中间件之后解决的。

$app = new \Slim\App([
    'settings' => [
         ...
         // Set to true to be able to access the route from within the
         // middleware, otherwise it will return null
         'determineRouteBeforeAppMiddleware' => true,
         ...
    ]
]);