互いに関連する 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 エラーがスローされる理由がわかりません。これを修正する方法はありますか?
変数名の選択が不適切であることはわかっています。