小编Geo*_*nov的帖子

在 Slim 4 中访问中间件中的路由参数

我想知道如何在 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__

这些似乎都没有包含参数。

php slim slim-4

3
推荐指数
1
解决办法
1535
查看次数

Slim3从CSRF中间件中排除路由

我正在建立一个基于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)

而且效果很好.但是现在我需要能够在某个路径上添加一个例外,这样我才能得到他们发送的帖子请求.到目前为止我找不到合适的解决方案.

有什么建议?

routing middleware csrf slim-3

2
推荐指数
1
解决办法
1327
查看次数

标签 统计

csrf ×1

middleware ×1

php ×1

routing ×1

slim ×1

slim-3 ×1

slim-4 ×1