【问题标题】:Can't get post variable from json无法从 json 获取 post 变量
【发布时间】:2014-02-05 05:53:01
【问题描述】:

我有一个 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 向应用程序发出 curl 请求,如下所示:

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

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

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

【问题讨论】:

  • 我不熟悉 Resty CLI - 它可能将数据作为字符串发送,而不是键值对。你能用 curl 试试同样的方法吗:curl -X POST -d name='Hello World' /products

标签: php json curl slim


【解决方案1】:

这可能有效,也可能无效,但是,我有一个我自己制作的 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 2013-09-16
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多