我有一条路由,其中包含我捕获到$ args变量中的参数:
$app->get('/v1/download/{transactionId}', function(Request $request, Response $response, $args) {
...
我也在这条路线上使用中间件,并且需要$args
的内容才能从中间件功能进行访问。我确定我缺少一些简单的东西,但似乎只能访问请求数据,而不能访问参数。
非常感谢您的协助!
谢谢!
答案 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,
...
]
]);