2017-03-03 133 views
1

有什么办法从Request类获取合并数据?因为目前我们手动为接受POST和GET查询的API控制器提交表单(这是因为传统项目而不是REST API)。Symfony形式手动提交GET和POST请求

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

有没有什么办法可以写下清洁而不是代码如下?

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

回答

1

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

如果你看一下source code of Request,你可以看到,当Symfony的创建要求,Symfony的把全局变量$_GET$this->query$_POST$this->request
没有Symfony变量可以同时使用这两个变量。

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

如果没有,请创建一个服务或其他解决方案来影响此代码。

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

+0

如果您需要在多个地方做的话,我会建议创建一个注释。 – Terenoth

+0

@Terenoth哪个注释和它应该做什么? –

+0

@SergeySmirnov我的意思是一个自定义注释。看看这个教程:https://www.sitepoint.com/your-own-custom-annotations/ – Terenoth