我试图在 Symfony 2.1 中显示一个带有 optgroups 的选择框。我的实体树是:客户有项目,项目有部分(Part->getProject()->getClient()
)
我想以这种方式显示我的选择框:
<select>
<optgroup>Client name
<option>Part name</option>
<!-- ... -->
</optgroup>
<!-- ... -->
</select>
Symfony 文档并没有太大帮助。我的工作表单生成器(没有 group_by 选项)给了我一个简单的选择:
$this->createFormBuilder()
->add('part','entity',array(
'class' => 'SGLFLTSPartBundle:Part',
'property' => 'name',
'query_builder' => function (\SGL\FLTS\PartBundle\Entity\PartRepository $er) {
return $er->createQueryBuilder('p');
}))
->getForm();
如何添加 group_by 选项以显示客户端名称?到目前为止我已经尝试过
'group_by' => 'project.client.name'
'group_by' => 'project.client'
'group_by' => 'ppc.name' // the DQL table alias
都给PHP错误
我还尝试将项目名称仅显示为 optgroup,但不走运:
'group_by' => 'project'
'group_by' => 'project.name'
'group_by' => 'project.id' // throws no error, giving me <optgroup label="1"> ...
并尝试在 createQueryBuilder 中添加项目/客户端连接
$er->createQueryBuilder('p')->select('p, pp')->leftJoin('p.project','pp');
$er->createQueryBuilder('p')->select('p, pp.name')->leftJoin('p.project','pp')
// wrong
谢谢!