0

私の前の質問に加えて。フォームの入力フィールドを制限したいと思います。そのため、たとえば id: 2 を持つサプライヤーの入力フィールドのみがあります。注文に関連するサプライヤーのコレクション全体ではありません。問題は、埋め込みコレクションに埋め込みコレクションがあることです。そして、最初のフォームタイプに $order を与えます。

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

私の問題は、コレクションのフォーム タイプでクエリ ビルダーを使用できないことです。では、エンティティに関連するすべてのサプライヤーではなく、1 つのサプライヤーの入力フィールドのみを表示するにはどうすればよいでしょうか?

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 に答える