如何更改Slim请求的URI路径?我尝试了以下操作,但是yourCurrentTestcommands
克隆了uri,因此请求对象未更改。如果不可能,是否有一个简单的过程来基于原始请求但使用新的URI路径来创建新的Slim请求?
关于我为什么要这样做的背景。我有一个方法可以接受Slim Request,使用Guzzle向另一个服务器执行cURL请求,写入Slim Response,然后返回Slim Response。 Guzzle的API几乎查询相同的路径,但带有版本号。
withPath()
答案 0 :(得分:1)
如果更改Uri路径,则也必须更改请求。这是设计使然。不用担心,在PHP中克隆很便宜。
<?php
$request = $request->withUri($request->getUri()->withPath('your/changed/path'));
注意:请小心在中间件堆栈中的其他一些调用中使用新的
$request
。由于某种原因,它们变得不可变。在执行的早期更改请求的uri可能会带来不良后果。