0

除了我之前的问题。我现在想限制表单的输入字段。这样只有供应商的输入字段,例如 id: 2 。而不是与订单相关的整个供应商集合。问题是,我在嵌入式集合中有一个嵌入式集合。我将 $order 赋予我的第一个表单类型。

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

我的问题是,我不能在表单类型中使用查询生成器进行集合。那么,我怎样才能只显示一个供应商的输入字段,而不是与实体相关的每个人?

4

1 回答 1

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();
于 2013-06-02T15:22:53.887 回答