Obtener parámetros PUT con Slim PHP

Busqué, pero no encontré una respuesta. Tengo una API RESTful para administrar un CRUD básico. Intento crear un método de actualización utilizando PUT, pero no puedo recuperar los valores de params. Estoy usando Postman para hacer las solicitudes, mi solicitud se ve así:

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') ]); }); 

Mi resultado var_dump() es:

 array(3) { ["id"]=> string(9) "987654321" ["name"]=> NULL ["age"]=> NULL } 

¿Qué está mal? ¿Alguna idea?

Yo tuve el mismo problema. En primer lugar, estaba enviando datos de PUT con la opción de Postman para codificarlo como “datos de formulario”, es por eso que Slim no obtenía los valores de param.

Como se explica en W3 , el tipo de contenido “multipart / form-data” se debe usar para enviar formularios que contienen archivos, datos no ASCII y datos binarios.

En nuestro caso, debemos enviar datos de PUT con la opción del cartero “x-www-form-urlencoded” (ver explicación de ” application / x-www-form-urlencoded ” en W3).

Captura de pantalla de la opción de cartero correcta seleccionada

$app->request->put() está devolviendo un valor nulo …

entonces puedes usar try $app->request->params