php – Symfony 2表单实体字段类型分组
发布时间:2020-12-13 13:24:51 所属栏目:PHP教程 来源:网络整理
导读:我在Symfony2中呈现一个表单,其中data_class映射到Reservation实体,并且此表单具有类Service的实体字段类型. Reservation和Service类之间的关系是多对多的.然后,服务具有ServiceType,它是另一个类,从Service类映射为多个 我想要做的是在预订表格中显示所有服
我在Symfony2中呈现一个表单,其中data_class映射到Reservation实体,并且此表单具有类Service的实体字段类型. Reservation和Service类之间的关系是多对多的.然后,服务具有ServiceType,它是另一个类,从Service类映射为多个
我想要做的是在预订表格中显示所有服务作为复选框,按服务类型分组.到目前为止,我可以像这样显示所有服务(代码来自ReservationType类): $builder->add('services','entity',array( 'class' => 'MyBundle:Service','multiple' => true,'expanded' => true )); 并以默认方式显示表单: <form action="{{ path('reservations',{'step': 2}) }}" method="post" {{ form_enctype(form) }}> {{ form_widget(form) }} <input type="submit" /> </form> 结果是这样的: □ servicetype1 option □ servicetype1 another option □ servicetype2 option □ servicetype2 another option 我想要达到的目标是: servicetype1: □ option □ another option servicetype2: □ option □ another option 我试图通过使用query_builder选项来指定服务的子集,如下所示: $builder->add('services',array( 'class' => 'MyBundle:Service','expanded' => true,'query_builder' => function (MyBundleEntityServiceRepository $repository) {return $repository->createQueryBuilder('s')->where('s.serviceType = ?1')->setParameter(1,1);} )); $builder->add('services',2);} )); 这是错误的,因为: >我必须指定ServiceType id 处理这样的表格最好的选择是什么?到目前为止只有2个ServiceType-s,但我想保持它的动态性和可重用性.
这可以通过使用
group_by option来解决:
$builder->add('services',array( 'class' => 'MyBundle:Service','group_by' => 'serviceType','expanded' => true )); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |