正如标题说我无法获得这些值一样,这是我的代码:
我得到了这个表格(未映射):
$default = array('default' => '');
$form2 = $this->createFormBuilder($default)
->add('Users', 'choice', array(
'choices' => $info,
))
->getForm();
其中$info是一个字符串数组。
我正在尝试访问这样的数据:
if ($request->getMethod() == 'POST') {
$data = $this->get('request')->request->get('form');
$user = implode(",", $data);
}
但我得到的结果是这样的:
0,ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A
我假设 0 是选定的索引,但是,为什么我会得到该代码?看起来有一些格式。
尝试克里斯建议的方式如下:
$default = array('default' => '');
$info = array();
$form = $this->createFormBuilder($default)
->add('Users', 'choice', array(
'choices' => $info,
))
->getForm();
$form->handleRequest($request);
//1st try:
$data = $form2->get('Users')->getConfig()->getOption('choices');
//2nd try:
$data = $form2->get('Users');
在第一次尝试中,我什么也没得到,它似乎是空的。
在第二次尝试中,我收到一个错误。
PD:我需要获取所选值,而不是完整字段。
感谢您的阅读,希望您能帮助我。
你应该使用Symfony的方式处理表单。
所以与其做
($request->getMethod() == 'POST)
使用表单实际获取数据,而不是 $_REQUEST
会这样做
$form->handleRequest($request);
if($form->isValid()) {
$data = $form->get('Users')->getData();
}
已解决,因为我认为结果"0,ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A"中的"0"实际上是选项值,因此解决方案在构建$info时更改该值。
而不是:
array_push($info,$user);
我做了:$info[$user] = [$user];
这样,选项值和标签就包含相同的内容。
谢谢大家。