我想知道如何在 Slim 4 的中间件中访问路由参数。
如果我定义了一个带有占位符和附加中间件的路由:
<?php
// ...
$app
->get('/{userId}', Controller::class)
->add(Middleware::class);
Run Code Online (Sandbox Code Playgroud)
我想{userId}
在调用控制器之前访问中间件的值:
class Middleware
{
function __invoke($request, $handler)
{
// Resolve user ID in this scope?..
return $handler->handle($request);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道在 Slim 3 中我们可以访问 request object 的属性,但是,它在 Slim 4 中不起作用。 route 对象的属性包含以下条目:
__routingResults__
__route__
__basePath__
这些似乎都没有包含参数。
我正在建立一个基于slim3框架的网上商店.我需要处理服务器到服务器的POST请求以确认付款是否成功.我将csrf添加到容器中,如下所示:
$container['csrf'] = function($container) {
return new \Slim\Csrf\Guard;
};
Run Code Online (Sandbox Code Playgroud)
并将其添加到应用程序中,如下所示:
$app->add($container->csrf);
Run Code Online (Sandbox Code Playgroud)
而且效果很好.但是现在我需要能够在某个路径上添加一个例外,这样我才能得到他们发送的帖子请求.到目前为止我找不到合适的解决方案.
有什么建议?