Hello, in Slim v3, I can modify $request object inside a Middleware. With Slim v4, I can’t return new $request object to others Middleware, as it only returns $response. How can I do?
Have you tried using the handle
method?
$response = $handler->handle($request);
http://www.slimframework.com/docs/v4/concepts/middleware.html
1 Like
I have read documentation but it says: Each middleware MUST return an instance of Psr\Http\Message\ResponseInterface
, no $request returned. How can I use Handler to modify $request object and return the modified $request to other Middlewares?
You modify the request as you need to inside your middleware, then pass it on. So:
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$request = $request->withAttribute('foo', 'bar');
return $handler->handle($request);
}
1 Like