2017-07-31 57 views
0

我在数据库领域 TIPOLOGY {ID,名称} EXAME {ID,姓名,id_tipology}Symfony的ChoiceType 2数据库表分组

两条表我需要建立由TIPOLOGY

分组选择列表
$builder->add('select_exame', ChoiceType::class, array(
    'label' => false, 
    'mapped' => false, 
    'choices' => array(
      'typology_name'=>array(
            'exame_name_1'=>'id_exame_1' 
            'exame_name_2'=>'id_exame_2' 
            ) 
      'typology_name_2'=>array(
            'exame_name_3'=>'id_exame_3' 
            ) 
    ), 
    ) 

但我不知道该怎么做。你可以帮我吗?

+0

这需要是一个实体类型而不是选择。然后您需要在实体存储库中编写所需的数据库查询,并从表单中调用它。我现在没有时间举一个例子,但是搜索谷歌的symfony实体表单类型会给你答案。 – Doug

回答

0

是的,他们是两个实体

实体Esame

class Esame 
{ 
/** 
* @var int 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="nome", type="string", length=255) 
*/ 
private $nome; 

/** 
* @var \AppBundle\Entity\Nome_esame 
* 
    * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Nome_esame") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="id_tipologia_esame", referencedColumnName="id") 
* }) 
*/ 
private $idTipologiaEsame; 

实体tipologia

class tipologiaesame 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="tipo", type="string", length=255) 
*/ 
private $tipo; 

,我尝试这样做

$builder->add('select_exame', EntityType::class, array(
    'label' => false, 
    'mapped' => false, 
    'class' => 'AppBundle:Esame', 
    'choice_label' => 'nome', 
    'group_by' => 'idTipologiaEsame.nome', 
    ) 

现在它的工作