我有一个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。
为什么会这样? 谢谢大家的帮助!
答案 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。