PHP FOSRestBundle с использованием метода PUT

Я пытаюсь использовать Symfony 2 с FOSRestBundle, у меня нормально работают функции GET и POST, и он возвращает массив с помощью PUT, однако я не могу получить строку запроса или ввод.

Я пробовал очевидные $_POST, $_GET, $_PUT и даже пробовал file_get_contents("php://input"); ни один из них не возвращает строку запроса.

Я склонен полагать, что PUT используется для обновления существующей записи, которую я делаю.

Будем очень благодарны любой помощи.


person Glow    schedule 23.10.2014    source источник
comment
Нет $_PUT. Путаница может возникнуть из-за того, что $_GET и $_POST названы в честь глаголов HTTP. Какой бы глагол HTTP вы ни использовали для работы с ресурсом, вы сможете получить доступ как к опубликованным данным, так и к параметрам строки запроса. В контроллере Symfony вы получаете доступ к этим данным с помощью $this->getRequest()->request ($_POST) и $this->getRequest()->query Соответствующая документация: http://symfony.com/doc/current/components/http_foundation/introduction.html   -  person Giovanni    schedule 23.10.2014
comment
Мои извинения. Я пытался установить http_foundation, но он действует так, как будто строка запроса полностью пуста. Просто отметим, что я использую расширение chrome RESTConsole для тестирования и передаю различные запросы полезной нагрузки (строку запроса), которые проходят нормально, если я POST, но когда я PUT, они вообще не поступают.   -  person Glow    schedule 23.10.2014


Ответы (1)


Это задокументировано здесь: https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/3-listener-support.md#param-fetcher-listener

Позвольте мне привести Вам пример:

/**
 * @View(statusCode=200)
 * @Put("/resource/{resource_id}")
 * @QueryParam(name="page", requirements="\d+", default="1", description="Page of the overview.")
 */
public function putAction(ParamFetcher $paramFetcher)
{
    $page = $paramFetcher->get('page');
    ...
}

Таким образом, вы сможете получить параметры запроса.

person piotr.jura    schedule 14.11.2014