【问题标题】:PHP FOSRestBundle using PUT methodPHP FOSRestBundle 使用 PUT 方法
【发布时间】:2014-10-23 12:32:28
【问题描述】:

我正在尝试将 Symfony 2 与 FOSRestBundle 一起使用,我的 GETPOST 函数工作正常,并且我已经让它通过 PUT 返回一个数组,但是我无法获取我的查询字符串或输入。

我已经尝试了明显的$_POST$_GET,$_PUT,甚至尝试过file_get_contents("php://input");这些都没有返回查询字符串。

我相信PUT 用于更新我正在执行的现有条目。

任何帮助将不胜感激。

【问题讨论】:

  • 没有 $_PUT。混淆可能源于 $_GET 和 $_POST 是以 HTTP 动词命名的事实。无论您使用什么 HTTP 动词来操作资源,您都可以访问已发布的数据和查询字符串参数。在 Symfony 控制器中,您可以使用 $this->getRequest()->request ($_POST) 和 $this->getRequest()->query 访问这些数据 相关文档:symfony.com/doc/current/components/http_foundation/…
  • 我很抱歉。我尝试安装 http_foundation 但它的行为就像查询字符串完全为空。请注意,我正在使用 RESTConsole chrome 扩展来测试并传递各种有效负载请求(查询字符串),如果我 POST 但当我 PUT 时它们根本没有到达。

标签: php rest symfony put fosrestbundle


【解决方案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');
    ...
}

这样您就可以获取查询参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 2016-09-15
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多