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' => ' '))

だから私はここで2つの問題に直面しています:

  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 に答える