我有一个具有entitytype字段的formtype .
$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'=>[] ]);
Where the 'data' is meant to be the selected values for the generated multiple select-field.
我试图传递一个User对象,一个User id的数组,用户的arraycollection等等 . 我之前的所有尝试都是来自“query_builder”结果的部分 .
他们两个都没有工作 . 有人知道在formbuilder中传递entitytype字段的“selected”值的解决方案吗?
先感谢您 .
2 回答
createForm()
的第二个参数似乎是null
.假设您有一组用户对象:
然后尝试创建这样的表单:
或者这样:
我尝试了上述解决方案,但它对我不起作用,所以这可能对其他人有帮助 .
我必须将一个模块数组传递给表单,以便它将是默认的选定值,所以在我的控制器中我这样做:
在我的形式,我这样做:
结果就像呈现的形式:
The rendered form