Подтвердить что ты не робот

Получить параметры PUT с помощью Slim PHP

Я искал, но я не нашел ответа. У меня есть 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
}

Что не так? Любая идея?

4b9b3361

Ответ 1

У меня была та же проблема. Во-первых, я отправлял данные PUT с опцией Postman, чтобы кодировать его как "данные формы", поэтому Slim не получал значения параметров.

Как объясняется в W3, тип содержимого "multipart/form-data" должен использоваться для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.

В нашем случае нам нужно отправить данные PUT с помощью опции Postman "x-www-form-urlencoded" (см. объяснение " application/x- www-form-urlencoded" в W3).

Screenshot of the right Postman option selected

Ответ 2

$app->request->put() возвращает нулевое значение...

поэтому вы можете использовать try $app->request->params вместо