0
我使用一個比喻來使我的觀點更容易理解。讓我們想象一個圖書館。我們有書籍,書籍集合和用戶。 書籍,收藏和用戶是我的實體。加入請求:OneToMany + ManyToMany
- 一件收藏品有許多書籍(一對多,bidirectionnal)
- 一本書可能已經被幾個用戶讀取(多對多,bidirectionnal)
我已經建立了三個實體之間的這些關係,到目前爲止,似乎很好。
的問題是:如何顯示圖書的清單對於給定的集合,如果當前用戶已經閱讀那些書籍?
我開始與該請求書的清單;我不知道如何爲用戶添加子請求或類似的東西:
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();
}
}
非常感謝!
如果您已經將書籍和用戶之間的MTOM你應該能夠使一個方法getUsers在書籍的實體。這將返回一個ArrayCollection(如果你這樣聲明),只是做一個in_array或任何要知道,如果你的用戶讀過那本書與否。 (如果我不清楚或者你需要一個例子告訴我) – Snroki
謝謝你的幫助。最後,我注意到,當我用控制檯更新實體時,arraycollection和setter是由Symfony創建的。 – Yako