无法从json获取post变量

时间:2014-02-04 21:13:22

标签: php json curl slim

我有一个Slim php应用程序,其路径如下:

$app->post('/products', function () use ($app) {


    $allPostVars = $app->request->post();

    print_r($allPostVars); //Returns a json of the right name attribute


    print_r($app->request->params('name')); //Doesn't return anything

});

我正在使用Resty CLI向应用程序发出一个卷曲请求,如下所示:

POST /products '{"name":"Hello World"}'

$ allPostVars正在显示我发送的JSON,但print_r($app->request->params('name'));返回NULL。

为什么会这样? 谢谢大家的帮助!

1 个答案:

答案 0 :(得分:3)

这可能或者可能不起作用但是,我有自己制作的API,当我发送带有我的API的JSON时,我将它发送到请求正文中,所以它没有像你期望的那样分配给POST var 。我获取数据的方式如下:

$inputJSON = file_get_contents('php://input'); 

print_r($inputJSON);

我希望这适合你:)

事实上,没关系我上面说的话。它刚刚告诉我你已经掌握了数据。只需从$ allPostVar中读取它并在其上运行JSON解码。

$allPostVars = $app->request->post();

$array = json_decode($allPostVar, true);

print_r($array);
echo $array['name'];

这就是你必须访问数据的方式,因为正如我上面所说的那样,它没有分配给var。