PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – Symfony 2表单实体字段类型分组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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 (\My\Bundle\Entity\serviceRepository $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
));

大佬总结

以上是大佬教程为你收集整理的php – Symfony 2表单实体字段类型分组全部内容,希望文章能够帮你解决php – Symfony 2表单实体字段类型分组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。