0

调用关系字段时是否可以使用表单类型的集合?

这就是我想要做的事情:

我在候选人实体和地区实体之间有关系,候选人可以属于多个地区。

我以这种方式设置表单类型:

候选人类型

$builder
    ->add('name')
    ->add('district', 'collection', array('type'=>new districtsChoiceType()))

选区类型

$builder
        ->add('candidate', 'entity', array(
                'class' => 'CMSElectionsBundle:districts',
                'query_builder' => function(EntityRepository $get) {
                    return $get->createQueryBuilder('p')->where('p.status = 1')->orderBy('p.id', 'ASC');
                }, 'property' => 'name', 'label' => ' '))

所以我在这里面临两个问题:

  1. 当我想创建一个新候选人时,地区字段显示为空/
  2. 当我尝试编辑现有候选人时,我收到以下错误:

    Expected argument of type "array or (\Traversable and \ArrayAccess)", "Proxies\__CG__\CMS\ElectionsBundle\Entity\districts" given
    
4

1 回答 1

0

我会为候选类型执行此操作:

$builder            
    ->add('districts', 'entity', array(
                'label' => 'Districts',
                'class' => 'CMSElectionsBundle:District',
                'query_builder' => function(\CMS\ElectionsBundle\Entity\DistrictRepository $er) {
                    return $er->createQueryBuilder('a')
                        ;
                },
                'property' => 'choose one property from district',
                'expanded' => true,
                'multiple' => true,
                'required' => true,
            ))

您能否向我们展示您用于在两个实体中创建关系的代码?

于 2013-01-30T14:31:39.933 回答