我用一个比喻来让我的观点更容易理解。让我们想象一个图书馆。我们有书籍、书籍收藏和用户。书籍、收藏和用户是我的实体。
- 一个集合有很多书(OnetoMany,双向)
- 一本书可能已被多个用户阅读(多对多,双向)
我已经在三个实体之间建立了这些关系,到目前为止,它似乎还不错。
问题是:如何显示给定收藏的图书列表,以及当前用户是否已阅读这些图书?
我从这个请求书单开始;我不知道如何为用户添加子请求或类似的东西:
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();
}
}
非常感谢!