Symfony2.3设置值和来自查询的选择字段的innerHTML

时间:2018-07-25 15:41:52

标签: php mysql symfony choicefield

我正在尝试从查询中个性化选择字段。

这是我获取选择内容的方法:

    $em = $this->getDoctrine()->getManager();
    $query2 = $em->createQuery("SELECT p.id,p.nombre FROM Exppromociones p");
    $productos = $query2->getArrayResult();

该表应如下所示:

{"id":93,"nombre":"Bucket"},
{"id":152,"nombre":"Spoon"},
{"id":142,"nombre":"Fork"}

使用变量$ productos构建一个表单:

   $form = $this->createFormBuilder()
        ->add('productos', 'choice', array('label' => 'Productos',
            'required' => true,
            'choices' => $productos,
        ))
        ->getForm();

该表格的结果为:

<optgroup label="0">
   <option value="id">93</option>
   <option value="nombre">Espumante Chandon Brut Nature</option>
</optgroup>

我希望choices字段的值等于id,innerHTML等于nombre,如下所示:

<option value=93>Bucket</option>

1 个答案:

答案 0 :(得分:0)

我保持相同的查询

    $em = $this->getDoctrine()->getManager();
    $query2 = $em->createQuery("SELECT p.id,p.nombre FROM Exppromociones p");
    $productos = $query2->getArrayResult();

但是在创建表单生成器之前,我会初始化一个数组,从“ $ productos”中提取id和nombre并将它们加载到$ choices中。

        $choices=array();
        foreach ($categorias as $cat){
            $id=$cat['id'];
            $nombre=$cat['nombre'];
            $choices[$id] = $nombre;
        }
        $form = $this->createFormBuilder()
        ->add('categoria', 'choice', array('label' => 'Categoria',
            'required' => true,
            'choices' => $choices, 
        ))
        ->getForm();

现在我的选择看起来像这样

<option value=93>Bucket</option>
相关问题