1

SO で例が見つからないので、質問を投稿します。

グループ エンティティ、ショップ エンティティ、トランザクション エンティティがあります。

グループには多くのショップがあり、ショップは多くのグループに属することができます。Group.php で:

/**
    * @ORM\ManyToMany(targetEntity="Shop", inversedBy="groups")
    * @ORM\JoinTable(name="group_shop",
*      joinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")},
*      inverseJoinColumns={@ORM\JoinColumn(name="shop_id", referencedColumnName="id")}
*      )
**/
private $shops;

そしてShop.phpで

/**
* @ORM\ManyToMany(targetEntity="Group", mappedBy="shops")
*/
private $groups;

次に、ショップが取引を行います。Transaction.php で:

/**
* @ORM\ManyToOne(targetEntity="Shop", inversedBy="transactions")
* @ORM\JoinColumn(name="shop_id", referencedColumnName="id")
* */
private $shop;

そしてShop.phpで:

/**
* @ORM\OneToMany(targetEntity="Transaction", mappedBy="shop")
**/
private $transactions;

クエリしたいのは、グループからのすべてのトランザクションです。これは非常に単純でなければなりません。

私が持っているもの:

$query4 = $em->createQuery("SELECT t FROM MGFAppBundle:Transaction t 
WHERE t.date > :from AND t.date < :to AND t.shop IN (/* HERE I'M STUCK */)")-    >setParameters(array(
         'from' => $from
         'to' => $to
      ));

これが正しいアプローチなのかどうかはわかりません...まあ、dqlを手に入れるのはちょっと難しいです。

この dql クエリはどのように記述すればよいですか?

前もって感謝します。

4

1 に答える 1