Forms 使用某种连接实体呈现窗体
我有3个实体: 顾客 合同(每个客户都有一个或多个合同,一个合同只针对一个客户:因此客户和合同之间存在一个单一的关系) 发票(每个发票都指一个或多个合同,每个合同都有一个或多个发票:所以合同和发票之间有很多关系) 现在我想使用复选框呈现发票表单。我写道:Forms 使用某种连接实体呈现窗体,forms,symfony,doctrine-orm,Forms,Symfony,Doctrine Orm,我有3个实体: 顾客 合同(每个客户都有一个或多个合同,一个合同只针对一个客户:因此客户和合同之间存在一个单一的关系) 发票(每个发票都指一个或多个合同,每个合同都有一个或多个发票:所以合同和发票之间有很多关系) 现在我想使用复选框呈现发票表单。我写道: ->add('contracts',null, array( 'multiple' => true, 'expanded' => true )) 在InvoiceFormType中,但我得到的是所有合同,而不仅仅是特定
->add('contracts',null, array(
'multiple' => true,
'expanded' => true
))
在InvoiceFormType中,但我得到的是所有合同,而不仅仅是特定客户的合同
怎么做
提前谢谢。
v、 不能将
null
作为表单类型。使用您自己的合同类型:
$builder->add('contracts', new ContractsType(), array(
'multiple' => true,
'expanded' => true
));
更多信息。解决方案是使用内置到表单中的查询
在这个链接上
因此:
不对。使用null
值强制进行表单类型猜测。见。
'query_builder' => function (EntityRepository $er) use ($customer) {
$q=$er->createQueryBuilder('c')
->where('c.customer= :customer')
->setParameter('customer', $customer);
return $q;
}