将参数添加到symfony2请求深层数组

时间:2013-01-08 11:57:03

标签: symfony request symfony-2.0

我想在symfony2 Request中为ParameterBag添加一个参数。

所以数组看起来像这样:

array (size=2)
  'editor' => 
    array (size=6)
      '_token' => string '5797a4faf1fced89404b80fb04b3cadffc99695e' (length=40)
      'login' => string 'editor' (length=6)
      'firstName' => string 'Joh' (length=3)
      'lastName' => string 'Ha' (length=2)
      'address' => 
        array (size=6)
          'time_zone_code' => string 'Africa/Abidjan' (length=14)

我想在editor array添加一个字段。我试过这个

$request->request->add(array('editor[password]' => $password));

但当然,这只会在editor[password]之后添加一个名为editor array的字段。

我是否必须替换整个ParameterBag或者是否有添加值的方法?

1 个答案:

答案 0 :(得分:7)

您可以获取编辑器数组,然后为其添加一个值,如果编辑器不是ParameterBag中唯一的数组,则再次设置它:

$data = $this->getRequest()->request->get('editor');
$data['password'] = 'string';
$this->getRequest()->request->set('editor', $data);

修改

看起来Google群组中存在类似答案的问题:https://groups.google.com/forum/?fromgroups=#!topic/symfony-devs/2-SWFtFKwxQ