修改控制器内的请求

Mic*_*ick 2 symfony-forms symfony

在Symfony中,很容易在控制器中获取请求:

$request = $this->container->get('request');
Run Code Online (Sandbox Code Playgroud)

现在,我认为这是一个不好的做法...但是可以修改该请求,这意味着,例如在绑定之前修改隐藏表单字段的值:

$requestModifiedWithNewValueForHiddenFormField = $request;
// modify the request
// ....
$this->bind($requestModifiedWithNewValueForHiddenFormField);
Run Code Online (Sandbox Code Playgroud)

我想我应该使用dataTransformer,但在这种情况下,我想对修改请求有你的意见......

Mun*_*Das 7

对于快速请求字段修改,您可以这样做,

$request = $this->getRequest()->request;
$requestArray = $request->all();
$requestArray['nested']['modifying_field'] = "Modified value";
$request->replace($requestArray);
Run Code Online (Sandbox Code Playgroud)

如果字段没有嵌套,那么你可以按照以下方式进行,

$this->getRequest()->request->set("modifying_field", "Modified value");
Run Code Online (Sandbox Code Playgroud)