我使用Postman(在Chrome中)测试Slim调用,但无法弄清楚如何获取任何发布的JSON数据。
我正在提交原始JSON:
{"name":"John Smith", "age":"30", "gender":"male"}
在标头中具有Content-Type:application / json
通过POST发送至:
http://domain/api/v1/users/post/test/
每次尝试获取JSON数据都会导致致命错误(请参见下面的代码注释)
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
$app->group('/api/v1', function () use ($app) {
$app->group('/users/post', function () use ($app) {
$app->post('/test/', function () {
print_r($app->request->headers); //no errors, but no output?
echo "Hello!"; // outputs just fine
$data = $app->request()->params('name'); //Fatal error: Call to a member function request() on a non-object
$data = $app->request->getBody(); //Fatal error: Call to a member function getBody() on a non-object
$data = $app->request->post('name'); //Fatal error: Call to a member function post() on a non-object
$data = $app->request()->post(); //Fatal error: Call to a member function request() on a non-object
print_r($data);
echo $data;
});
});
});
$app->run();
?>
我想念什么?
谢谢!
确保咖喱$app
进入最后一个嵌套路线,如下所示:
// Pass through $app
$app->post('/test/', function () use ($app) {
您在其他任何地方都在执行此操作,因此我假设您只是忽略了它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句