根据Slim Framework 3更改参数

时间:2018-11-20 19:10:57

标签: slim-3

使用Slim 3 Framework,我尝试在一个函数中更改post / put-request的参数,并将操纵后的请求传递给另一个函数,如下所示:

public function myFunction(Request $request, Response $response, $args)
{
    $markdown = $request->getParams("markdown");
    $markdown = strg_replace('needle', 'replace', $markdown);
    $request->setParams("markdown", $markdown);
    $this->anotherFunction($request, $response, $args);
}

当然,setParams并不苗条,因此我尝试使用getAttribute / withAttribute,但是似乎您无权访问以下post / put-params:

    $markdown = $request->getAttribute('markdown'); // is empty
    $markdown = strg_replace('needle', 'replace', $markdown);
    $request = $request->withAttribute('markdown', $markdown);
    $this->anotherFunction($request, $response, $args);

我找到了另一个函数withParsedBody(),但是我看不到一种操纵参数并将其放回请求并传递请求的方法。有任何想法或解决方法吗?

1 个答案:

答案 0 :(得分:0)

抱歉,我刚刚在PSR-7的文档中找到了它:

$params = $request->getParsedBody();
$params['markdown'] = 'manipulate me'
$request = $request->withParsedBody($params);

,并且有效。也许可以帮助某人...