【问题标题】:Symfony Forms manual submission of both GET and POST requestsSymfony Forms 手动提交 GET 和 POST 请求
【发布时间】:2017-03-03 12:17:40
【问题描述】:

有没有办法从 Request 类中获取合并数据?因为目前我们正在为接受 POST 和 GET 查询的 API 控制器手动提交表单(由于遗留项目,这不是 REST API)。

$data = array_merge($request->query->all(), $request->request->all());
$form->submit($data);

有没有什么方法可以写出更简洁的东西而不是下面的代码?

$data = array_merge($request->query->all(), $request->request->all());

【问题讨论】:

    标签: symfony symfony-forms


    【解决方案1】:

    我认为这是不可能(也许我错了)

    如果你查看source code of Request,你可以看到Symfony创建请求时,Symfony将全局变量$_GET放在$this->query中,$_POST放在$this->request中。
    没有任何 Symfony 变量可以同时使用两者。

    如果你只在一个地方需要它,我认为你所做的很好。

    如果没有,请创建一个服务或另一个解决此代码的解决方案。

    另一个解决方案是使用全局变量$_REQUEST,因为Symfony 生成merge,但这取决于你的php 配置(request_order 参数php.ini)。
    但我不认为在 Symfony 中使用 Superglobals 变量是一个好主意......(除了 symfony overwrites 他们)

    【讨论】:

    • 如果你需要在多个地方做,我建议创建一个注释。
    • @Terenoth 是哪个注解,应该做什么?
    • @SergeySmirnov 我的意思是自定义注释。看看这个教程:sitepoint.com/your-own-custom-annotations
    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    相关资源
    最近更新 更多