Slim v3 PUT 方法并检索 POST 数据
Slim v3 PUT method and retrieve POST data
我在使用 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 方法 post addon_email = test@null.com
$addon_email
的检索值为空;
任何提示我做错了什么?
您应该使用 $request->getParams()
来获取所有 POST
/PUT
参数的数组,或者您可以使用 $reqeuest->getParam('key', 'defaultValue')
,其中 'key'
是参数名称'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");
}
编辑
我们都忘记了您应该 return 响应对象。 )
因为add_email_address
是路由回调,所以应该returnPsr\Http\Message\ResponseInterface
响应。
我已经通过更改
让它工作了
$addon_email = $app->request->getParam('addon_email', null);
到
$allPostPutVars = $request->getParsedBody();
$addon_email = $allPostPutVars['addon_email'];
看起来 getParam
仅适用于 GET 方法。此外,内容类型必须设置为 x-www-form-urlencoded
我在使用 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 方法 post addon_email = test@null.com
$addon_email
的检索值为空;
任何提示我做错了什么?
您应该使用 $request->getParams()
来获取所有 POST
/PUT
参数的数组,或者您可以使用 $reqeuest->getParam('key', 'defaultValue')
,其中 'key'
是参数名称'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");
}
编辑
我们都忘记了您应该 return 响应对象。 )
因为add_email_address
是路由回调,所以应该returnPsr\Http\Message\ResponseInterface
响应。
我已经通过更改
让它工作了$addon_email = $app->request->getParam('addon_email', null);
到
$allPostPutVars = $request->getParsedBody();
$addon_email = $allPostPutVars['addon_email'];
看起来 getParam
仅适用于 GET 方法。此外,内容类型必须设置为 x-www-form-urlencoded