我使用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'