Изменить параметр в запросе Slim Framework 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 не существует в slim, поэтому я попытался с 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 ответ

Извините, я только что нашел это в документации PSR-7:

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

и это работает. Может быть, это кому-то помогает...

Другие вопросы по тегам