私は自分の主張をより理解しやすくするためにアナロジーを使用しています。図書館を想像してみましょう。書籍、書籍のコレクション、ユーザーがいます。書籍、コレクション、ユーザーは私の実体です。
- コレクションには多くの本があります(OnetoMany、双方向)
- 本は複数のユーザーによって読まれた可能性があります(多対多、双方向)
私は3つのエンティティの間にこれらの関係を構築しましたが、これまでのところ、問題はないようです。
質問は、特定のコレクションの本のリストを表示する方法と、現在のユーザーがそれらの本を読んだかどうかです。
私は本のリストに対するこの要求から始めています。ユーザー向けにサブリクエストなどを追加する方法がわかりません。
class CollectionRepository extends EntityRepository {
public function getCollectionWithBooks($collectionName) {
$qb = $this->createQueryBuilder('c')
->leftJoin('c.books', 'b')
->where('c.urlname = :collectionName')
->setParameter('collectionName', $collectionName)
->addSelect('b');
return $qb->getQuery()
->getSingleResult();
}
}
どうもありがとうございます!