BuildForm中的QueryBuilder

时间:2016-05-05 10:53:35

标签: forms symfony symfony-2.6

我有一个与实体Employe具有OneToMany关系的实体Equipe。这意味着团队中有很多员工。因此,在EquipeType中,我试图显示员工列表以及每个员工面前的chekckbox,如果我想在该团队中添加员工,我只需要检查它。这有效,但我的问题是如何显示名称,ID和所有其他属性,并将它们放在表中。我需要一个for语句,但要放入什么?谢谢this is how I get it in my twig

我的FormBuilder

->add('date')
        ->add('nom')
        ->add('employes', 'entity', array(
            'class' => 'OCUserBundle:Employe',
            'property' => 'username',
            'multiple' => true,
            'expanded' => true,
            'query_builder' => function (EntityRepository $er) {
                return $er->createQueryBuilder('u')
                    ->orderBy('u.id', 'ASC');
            },

我的树枝

{{form_widget(form.employes)}}

1 个答案:

答案 0 :(得分:0)

由于选项中的Symfony 2.7 property已更改为choice_label,可能是此类回调

'choice_label' => function ($employee) {
    return $employee->getName().'/'.$employee->getId();
}

EntityType field documentation

中对此进行了解释

如果您使用早于2.7版本的Symfony,您应该在Employee中声明一个方法,如下所示:

public function getDisplayName()
{ 
    return $this->getName().'/'.$this->getId(); 
}

然后在选项中声明属性为

'property' => 'display_name'

有关详细信息,请参阅EntityType field documentation for Symfony 2.6