我添加了使用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
值为空;
任何提示我做错了什么?
答案 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