更改Slim Request属性

时间:2018-12-26 19:14:40

标签: php slim psr-7

如何更改Slim请求的URI路径?我尝试了以下操作,但是yourCurrentTestcommands克隆了uri,因此请求对象未更改。如果不可能,是否有一个简单的过程来基于原始请求但使用新的URI路径来创建新的Slim请求?

关于我为什么要这样做的背景。我有一个方法可以接受Slim Request,使用Guzzle向另一个服务器执行cURL请求,写入Slim Response,然后返回Slim Response。 Guzzle的API几乎查询相同的路径,但带有版本号。

withPath()

1 个答案:

答案 0 :(得分:1)

如果更改Uri路径,则也必须更改请求。这是设计使然。不用担心,在PHP中克隆很便宜。

<?php

$request = $request->withUri($request->getUri()->withPath('your/changed/path'));
  

注意:请小心在中间件堆栈中的其他一些调用中使用新的$request。由于某种原因,它们变得不可变。在执行的早期更改请求的uri可能会带来不良后果。