无法从表单 symfony2 获取选项值


Can't get options values from form symfony2

正如标题说我无法获得这些值一样,这是我的代码:

我得到了这个表格(未映射):

$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];

这样,选项值和标签就包含相同的内容。

谢谢大家。