2017-02-14 14 views
0

У меня есть тип формы, который имеет поле entitytype.set selected values ​​for entitytype

$builder->add('canRead', EntityType::class, [ 
    'attr'   => ['style' => 'height:150px;'], 
    'choice_value' => 'id', 
    'required'  => true, 
    'multiple'  => true, 
    'expanded'  => false, 
    'class'   => 'AppBundle\Entity\User', 
    'query_builder' => function (EntityRepository $er) { 
     $qb = $er->createQueryBuilder('e'); 
     $qb->innerJoin('e.roles', 'r')->where('r.role LIKE :role')->setParameter('role', 'ROLE_ADMIN_%') 
     ->orderBy('e.lastName', 'ASC') 
     ->addOrderBy('e.firstGame', 'ASC'); 

     return $qb; 
    }, 
]); 

В контроллере, я называю это так:

$form = $this->createForm(MedicalType::class, null, [ 'data'=>[] ]); 

где имеется в виду «данные», чтобы быть выбранные значения для генерироваться множественного выбора поля.

Я попытался передать один пользовательский объект, массив идентификаторов пользователя, arraycollection пользователей и т. Д. Все мои попытки раньше были частью результатов «query_builder», конечно.

Не работает ни один из них. Кто-нибудь знает решение для передачи «выбранных» значений для поля entitytype в formbuilder?

Заранее спасибо.

ответ

0

Вторым параметром является createForm(), являющимся null, является проблемой.

Допустим, у вас есть массив пользовательских объектов:

$data = [$user1, $user2]; 

Затем попытайтесь создать форму, как, что:

$form = $this->createForm(MedicalType::class, $data); 

или так:

$form = $this->createForm(MedicalType::class, array(), [ 'data'=> $data ]);