Я искал, но я не нашел ответа. У меня есть RESTful API для управления базовым CRUD. Я пытаюсь создать метод обновления с помощью PUT, но я не могу получить значения params. Я использую Postman для запросов, мой запрос выглядит так:
URL
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 }
Что не так? Есть идеи?
У меня такая же проблема. Во-первых, я отправлял данные PUT с опцией Postman, чтобы кодировать его как «данные формы», поэтому Slim не получал значения параметра.
Как поясняется в W3 , тип контента «multipart / form-data» должен использоваться для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.
В нашем случае мы должны отправлять данные PUT с помощью опции Postman «x-www-form-urlencoded» (см. Объяснение « application / x-www-form-urlencoded » в W3).
$app->request->put()
возвращает нулевое значение …
поэтому вы можете использовать try $app->request->params
вместо