无法从表单symfony2获取选项值

时间:2014-11-19 20:18:39

标签: php forms symfony

因为tittle说我无法获得这些值,这是我的代码:

我收到了这张表格(未映射):

$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:我需要获取所选的值,而不是完整的字段。

感谢阅读,希望你能帮助我。

2 个答案:

答案 0 :(得分:0)

您应该使用Symfony方式处理表单。

所以不要做

($request->getMethod() == 'POST) 使用表单实际获取的数据不是$ _REQUEST

会这样做

$form->handleRequest($request);

if($form->isValid()) {
   $data = $form->get('Users')->getData();
}

答案 1 :(得分:0)

解决了,因为我认为" 0"在结果" 0,ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A"实际上是选项值,所以解决方案是在构建$ info时改变该值。

而不是:

array_push($信息,$用户);

我做了: $ info [$ user] = [$ user];

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

谢谢大家。