json编码变量中的斜线打破了细长的api路径

时间:2015-01-21 13:00:39

标签: php json routes slim

我用这样的瘦api创建了一条路线:

$app->put('/user/:one', function ($one) {

我知道我通过将它用作get来创建了错误,但我无法更改应用程序,因为它的实时性。 因此,我必须找到一种方法来改变它,以便当json编码变量包含斜杠时它可以工作。 当json变量中的一个字段包含斜杠时,路径认为正在声明另一个变量。 在这个URL中,密码包含一个斜杠,从而打破了我的路线:

http://someapi.nl/someappApi/api.php/user/%7B%22uuid%22:%2267b80bda2ab6f83d%22,%22username%22:%22bladude%22,%22screen_state%22:%22Aan%20het%20werk%22,%22name%22:%22bladude%22,%22last_name%22:%22asdf%22,%22email%22:%22someexample@live.nl%22,%22password%22:%22bie/rtje/%22%7D

有没有办法告诉slim api它应该看到整个url作为一个变量???还是逃避斜线?

2 个答案:

答案 0 :(得分:0)

您可以使用通配符路由捕获整个查询字符串...

$ app-> put(' / user /:one +',function($ one){

答案 1 :(得分:0)

如果您使用的是SLIM 3

$app->get('/hello[/{params:.*}]', function ($request, $response, $args) {
$params = explode('/', $request->getAttribute('params'));

// $params is an array of all the optional segments

});

我在“ Slim 3 - Slash as a part of route parameter”处找到了该解决方案