查询多个嵌入的集合表单

时间:2013-05-30 21:39:36

标签: forms symfony

除了我的previous问题。我现在想限制表单的输入字段。因此,只有供应商的输入字段,例如id:2。而不是与订单相关的整个供应商集合。问题是,我在嵌入式集合中有一个嵌入式集合。我给我的第一个formtype订单。

$order = $this->getDoctrine()
        ->getRepository('AcmeAppBundle:PurchaseOrder')         
    $form = $this->createForm(new ProducedAmountOrderType(), $order);

我的问题是,我无法在集合的表单类型中使用查询构建器。那么,我如何只显示一个供应商的输入字段而不显示与实体相关的所有人?

1 个答案:

答案 0 :(得分:0)

我用这个$ order查询解决了它:

$order = $this->getDoctrine()->getManager()->createQuery("
        SELECT o, a , s
        FROM AcmeAppBundle:PurchaseOrder o
        JOIN o.purchaseOrders a
        JOIN a.articleOrderReferences s
        WHERE o.id = :orderId
          AND s.supplier = :supplierId
          AND s.amount > 0      
       ")
                   ->setParameter('orderId', $orderId)
                   ->setParameter('supplierId', $supplierId)
                   ->getOneOrNullResult();