0

我有 3 个实体:客户合同(每个客户有一个或多个合同,合同仅适用于一个客户:因此客户和合同之间存在 OneToMany 关系)发票(每张发票指的是一个或多个合同,每个合同都有一个或更多发票:因此合同和发票之间存在多对多关系)。

现在我想用复选框呈现发票表单。我写:

->add('contracts',null, array(
'multiple'  => true,
'expanded'  => true
 ))

在 InvoiceFormType 中,但我不仅获得了特定客户的所有合同。

怎么做?

提前致谢。五。

4

2 回答 2

1

您不能null作为表单类型给出。改用你自己的contractsType

$builder->add('contracts', new ContractsType(), array(
     'multiple' => true,
     'expanded' => true
));

有关更多信息,请参阅文档

于 2013-07-31T17:22:22.087 回答
0

解决方案是使用表单中的查询。

在这个链接上有一个http://sunzhen.blogspot.it/2012/09/symfony2-custom-query-in-entity-field.html

所以:

 'query_builder' => function (EntityRepository $er) use ($customer) {
    $q=$er->createQueryBuilder('c')
          ->where('c.customer= :customer')
          ->setParameter('customer', $customer);

    return $q;
}
于 2013-08-01T12:09:28.723 回答