Я использую 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();
?>
Что мне не хватает?
Спасибо!
var_dump($app)
, где появляется первая неустранимая ошибка. Возможно, попробуйте использовать $this вместо $app. - person jshawl   schedule 02.12.2013