【发布时间】:2014-05-20 13:38:19
【问题描述】:
我搜索了,但没有找到答案。我有一个 RESTful API 来管理基本的 CRUD。我正在尝试使用 PUT 创建更新方法,但无法检索参数值。我正在使用Postman 发出请求,我的请求如下所示:
网址
http://localhost/api/update/987654321
参数
id = 987654321
name = John Smith
age = 35
PHP
$app = new Slim();
$app->put('/update/:id', function( $id ) use( $app ){
var_dump([
'id' => $id,
'name' => $app->request->put('name'),
'age' => $app->request->put('age')
]);
});
我的var_dump() 结果是:
array(3) {
["id"]=>
string(9) "987654321"
["name"]=>
NULL
["age"]=>
NULL
}
怎么了?有什么想法吗?
【问题讨论】:
-
查看手册docs.slimframework.com/#Request-Body 如果您向下滚动到“请求变量”部分,那里有一个示例。或者,您可以直接从正文中获取参数并通过执行
parse_str(file_get_contents("php://input"),$post_vars);将其放入 var -
我想在这个请求中上传图片。用
POST更新是不好的做法? -
对不起,我的评论不是关于
POST数据,我从另一个站点复制了代码。然而,PUT 数据设置在请求的正文中,就像除 GET 之外的所有其他类型的请求一样(尽管您可能能够将正文字符串附加到 GET 请求,但我从未尝试过)。您可以执行parse_str($app->request->getBody(), $vars);并对其执行 var_dump 以查看您的数据。
标签: php rest put restful-url slim