![](/img/trans.png)
[英]Symfony2 and Doctrine2: No identifier/primary key specified for Entity “X”. Every Entity must have an identifier/primary key
[英]Symfony 2 + Doctrine | Entity must have all tags
我正在使用 Symfony 2 和學說。 我有 4 個實體,CustomPage、Tag、CustomPageTag、Comment。
每個 CustomPage 可以有許多標簽和許多評論。 我想選擇一個帶有一些特定標簽的 customPage(帶有所有評論)。
示例:我想選擇帶有“tag1”和“tag2”的customPage
我這樣做了,
SELECT CUSTOMPAGE, TAG, CUSTOMPAGE_TAG, COMMENT
FROM CustomBundle:CustomPage CUSTOMPAGE
JOIN CUSTOMPAGE.comments COMMENT
JOIN CUSTOMPAGE.tags CUSTOMPAGE_TAG
JOIN CUSTOMPAGE_TAG.tag TAG
WHERE TAG.name IN ('tag1','tag2')
GROUP BY CUSTOMPAGE.id
HAVING COUNT(DISTINCT CUSTOMPAGE_TAG.name) = 2
它運行良好,但問題是它只返回一條評論(我想要全部)。
因為使用 group by,你只得到一條評論,而不是使用兩個 join。
嘗試這個:
SELECT CUSTOMPAGE, TAG1, CUSTOMPAGE_TAG, COMMENT
FROM CustomBundle:CustomPage CUSTOMPAGE
JOIN CUSTOMPAGE.comments COMMENT
JOIN CUSTOMPAGE.tags CUSTOMPAGE_TAG
JOIN CUSTOMPAGE_TAG.tag TAG1
JOIN CUSTOMPAGE_TAG.tag TAG2
WHERE TAG1.name= 'tag1'
AND TAG2.name= 'tag2'
我終於找到了! Doctrine 允許使用 exsist ! 所以 :
$qb->expr()->exists('SELECT b...')
謝謝你們的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.