2

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?

Mainak
  • 469
  • 3
  • 9
  • 33
  • 2
    This https://github.com/phalcon/cphalcon/issues/10902 and this https://forum.phalconphp.com/discussion/1870/why-my-api-do-not-work-via-http-put-and-delete-but-work-fine-via may help you. Sorry but I do not have the time to test and provide better answer at the moment. – Nikolay Mihaylov Jun 14 '17 at 12:50

1 Answers1

1

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.

Mainak
  • 469
  • 3
  • 9
  • 33