Search code examples
phpnginxphalconputhttp-delete

unable to get PUT and DELETE request data in phalcon controller


I have my project in phalcon framework version 2.1.0r on nginx with PHP 7.0.19. In my routes.php file the routes are configured like this :

$usersCollection->delete('/{name}', 'delete');
$usersCollection->put('/{name}', 'update');

In my controller I am trying to access the posted request parameters like :

$id=$this->request->getPut('id');

but $id always returns NULL. I am able to get the posted values if I use :

file_get_contents('php://input')

But in this case the values are returned like :

------WebKitFormBoundaryzKhI64Bwq8brD8g3 Content-Disposition: form-data; name="id"

34534645645 ------WebKitFormBoundaryzKhI64Bwq8brD8g3--

which becomes difficult to parse. Is there any way to get the posted parameters for PUT and DELETE requests like that in POST requests for phalcon?


Solution

  • It seems the only way to get the posted values in the above case is by using

    $this->request->getJsonRawBody()

    This gives the whole request body as JSON object. Then you can parse as required.