我搜索过,但我没有找到答案。我有一个RESTful API来管理基本的CRUD。我尝试使用PUT创建更新方法,但我无法检索参数值。我使用Postman发出请求,我的请求如下:
网址
http://localhost/api/update/987654321
PARAMS
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
}
有什么问题?有什么想法吗?
答案 0 :(得分:20)
我遇到了同样的问题。首先,我使用Postman选项发送PUT数据,将其编码为" form-data",这就是为什么Slim没有得到参数值。
正如W3中所述,内容类型" multipart / form-data"应该用于提交包含文件,非ASCII数据和二进制数据的表单。
在我们的例子中,我们必须使用Postman选项发送PUT数据" x-www-form-urlencoded" (参见" application/x-www-form-urlencoded"在W3中的解释)。
答案 1 :(得分:1)
$app->request->put()
返回空值...
所以你可以使用try $app->request->params
代替