簡體   English   中英

Symfony 2 + 學說 | 實體必須具有所有標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM