【问题标题】:php - Slim $app->request->getBody() is always emptyphp - Slim $app->request->getBody() 始终为空
【发布时间】:2016-06-01 07:23:57
【问题描述】:

就像我说的,当我试图在 PUT 方法中获取请求的主体时,它是空的。这是我正在使用获取正文的代码。

if ($_SERVER['REQUEST_METHOD'] == 'PUT') {
    $app = \Slim\Slim::getInstance();
    parse_str($app->request()->getBody(), $request_params);
}

我可以通过$app->request()->params('key'); 获取参数 但是获取完整的body总是返回null。

【问题讨论】:

  • 如果你 var_dump 怎么办?
  • @izk 结果是这样的:array(0) {}
  • 什么都不返回?数组中没有数据。 var_dump 递归地探索数组和对象,所以如果有任何数据存在,它就会显示出来。
  • @izk 完美,我明白这一点。我遇到的问题是在我的 REST api 中,我正在发送 put 参数,我可以使用 $app->request()->params('key'); 获取它,但是当我尝试获取完整的主体时,它返回 null。

标签: php frameworks request slim


【解决方案1】:

这不是正确的方法。 Slim 有一个 PUT 的 http 请求。

$app = \Slim\App();
$app->put('/url', function($request, $response){
      $request = $request->getParsedBody();
});

然后您可以像访问数组一样访问参数。

即。 $key = $request['key'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2023-03-12
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多