使用 Slim 从 HTTP 请求中获取对象时出错
Error taking object from HTTP Request with Slim
我通过 POST 发送到 API-REST with Slim,我收到了我的数据,但我无法转换为对象。
看:
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']
.
访问名称等参数
我通过 POST 发送到 API-REST with Slim,我收到了我的数据,但我无法转换为对象。 看:
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']
.