Slim v3 PUT方法并检索POST数据

时间:2016-10-26 19:25:42

标签: post slim put

我添加了使用PUT方法更新电子邮件的路径

$app->put('/notifications/{email}', 'add_email_address');

和它的功能看起来像:

function add_email_address($request, $response, $args) {

  $email = $args['email'];
  $addon_email = $request->getParam('addon_email', null);

  echo "ADD/UPDATE $email with $addon_email";

}

UPDATE 以某种方式测试PUT方法,表单输入帖子addon_email = test@null.com检索到的$addon_email值为空;

任何提示我做错了什么?

2 个答案:

答案 0 :(得分:0)

您应该使用$request->getParams()获取所有POST / PUT参数的数组,或者您可以使用$reqeuest->getParam('key', 'defaultValue'),其中'key'是参数名称{ {1}}是......好吧,缺少case参数的默认值。

所以,

'defaultValue'

修改

我们都忘了你应该返回响应对象。 )

由于function add_email_address($request, $response, $args) { $email = $args['email']; $addon_email = $app->request->getParam('addon_email', null); // some code.... return $response->withJson("ADD/UPDATE $email with $email"); } 是路由回调,因此应该返回add_email_address响应。

答案 1 :(得分:0)

我通过改变

让它发挥作用

$addon_email = $app->request->getParam('addon_email', null);

$allPostPutVars = $request->getParsedBody();
$addon_email = $allPostPutVars['addon_email'];

看起来getParam仅适用于GET方法。内容类型也必须设置为x-www-form-urlencoded