ani*_*ist 6 php null slim slim-3
我正在使用Slim Framework 版本 3,但遇到了一些问题。
$app-> post('/', function($request, $response){
$parsedBody = $request->getParsedBody()['email'];
var_dump($parsedBody);
});
Run Code Online (Sandbox Code Playgroud)
结果总是:
空值
你能帮助我吗 ?
Tho*_*mas 22
当我切换到 slimframework 版本 4 时,我必须添加:
$app->addBodyParsingMiddleware();
Run Code Online (Sandbox Code Playgroud)
否则主体始终为空(甚至 getBody())
这取决于您如何将数据发送到路由。application/x-www-form-urlencoded这是一个 POST 路由,因此默认情况下它期望正文数据为标准表单格式 ( )。
如果您要将 JSON 发送到此路由,则需要将Content-type标头设置为application/json. 即卷曲看起来像:
curl -X POST -H "Content-Type: application/json" \
-d '{"email": "a@example.com"}' http://localhost/
Run Code Online (Sandbox Code Playgroud)
另外,您应该验证您正在查找的数组键是否存在:
$parsedBody = $request->getParsedBody()
$email = $parsedBody['email'] ?? false;
Run Code Online (Sandbox Code Playgroud)