返回Symfony表单提交的数据为字符串,而不是数组

时间:2015-09-12 15:18:49

标签: symfony symfony-forms

我使用Symfony 2.7。

是否可以将提交的数据作为字符串而不是数组?

我有一个用于搜索记录的自定义表单类型,我希望它具有特定的输出。我想在表单上使用GET方法,因此可以立即在查询字符串中显示和使用提交的数据,而无需额外的重定向:

表单名为 search ,其字段类似于 - firstName(文字) - lastName(文字) ...

如果提交表单,我希望结果不是

search => array(
   firstName => 'John',
   lastName => 'Doe',
)

但我需要它看起来像

search => 'firstName:John lastName:Doe'

我试图使用数据变换器,但到目前为止没有运气。它有可能吗?如何?

表单构建我现在正在使用:

    $builder
        ->add('firstname')
        ->add('lastname')
        ->add('submit', 'submit')
    ;

    $builder->addModelTransformer(new CallbackTransformer(
        function($origData){
            return $origData; //no need to set form fields for me
        },
        function($submitData){
            $q = QueryResolver::buildQuery($submitData);
            return $q;
        }
    ));

第二次回调中的'q'变量确实是

'firstname:john lastname:doe'

但请求'搜索'值仍然是一个数组:

  'search' => 
      'firstname' => 'john'
      'lastname' => 'doe'
       ...
      'submit' => ''
      '_token' => 'S9k9ZBPaUVz13nNGXn8UoRarxa37IHNWU_AJZGt00H8'

0 个答案:

没有答案