3

互いに関連する 3 つのエンティティがあります。

エンティティ 1:

/** @ORM\OneToMany(targetEntity="ArticleOrderReference", mappedBy="purchaseOrder") */
protected $purchaseOrders;

エンティティ 2:

/** @ORM\ManyToOne(targetEntity="PurchaseOrder", inversedBy="purchaseOrders") */
protected $purchaseOrder;

 /** @ORM\OneToMany(targetEntity="AOSupplierReference", mappedBy="articleOrderReference") 
 *  @ORM\OrderBy({"supplier" = "ASC"})
 * */
protected $articleOrderReferences;

エンティティ 3:

/** @ORM\ManyToOne(targetEntity="ArticleOrderReference", inversedBy="articleOrderReferences")
 *  
 */
protected $articleOrderReference;

/** @ORM\ManyToOne(targetEntity="Supplier", inversedBy="suppliers") */
protected $supplier;

私の目標は、次のようなクエリを作成することです。

$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();

しかし、それはこのエラーを表示します

Notice: Undefined index: supplier in /var/www/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/DefaultQuoteStrategy.php line 40 

@ORM\OrderBy({"supplier" = "ASC"})、 Entity2 でを使用したためです。この順序がなくても機能します。Undefined index エラーがスローされる理由がわかりません。これを修正する方法はありますか?

変数名の選択が不適切であることはわかっています。

4

0 に答える 0