使用Slim从HTTP请求获取对象时出错


Error taking object from HTTP Request with Slim

我通过POST发送到Slim的API-REST,我收到了我的数据,但无法转换为对象。外观:

header('Content-type: application/json');
    $request = 'Slim'Slim::getInstance()->request();
    var_dump($_POST);
    print("<br>");
    print("<br>");
    var_dump($request->getBody());

结果是:

array(11) { ["nombre"]=> string(10) "nom prueba" ["apellido"]=> string(10) "ape_prueba" ["edad"]=> string(2) "20" ["altura"]=> string(3) "190" ["goles"]=> string(3) "200" ["amarillas"]=> string(2) "10" ["rojas"]=> string(1) "5" ["asistencias"]=> string(1) "4" ["partidos"]=> string(3) "100" ["equipos"]=> string(1) "3" ["trofeos"]=> string(1) "2" }
string(136) "nombre=nom%20prueba&apellido=ape_prueba&edad=20&altura=190&goles=200&amarillas=10&rojas=5&asistencias=4&partidos=100&equipos=3&trofeos=2" 

但如果我做json_decode,它不会转换为对象:

$received = $request->getBody();
    var_dump(json_decode($received)); // NULL

我该怎么做?最好的方法是什么?

请求主体不是JSON格式,因此JSON_decode不起作用,也没有必要。您的请求已经转换为PHP对象,如var_dump($_POST);的输出所示。您可以使用$_POST['nombre']访问诸如nombre之类的参数。