簡體   English   中英

如何分開結果

[英]How do I separate the results

我在Doctrine QueryBuilder上有以下查詢:

$qb = $this->createQueryBuilder('e')
            ->select('e.id, e.name, e.body, e.teaser, e.slug, e.dateBegin, e.dateEnd, e.dateTbd, v.name AS v_name')
            ->innerJoin('e.venue', 'v')
            ->where('v.name LIKE :TBD')
            ->orWhere('v.name LIKE :TBA')
            ->orWhere('e.name LIKE :TBD')
            ->orWhere('e.name LIKE :TBA')
            ->orWhere('e.name LIKE \'none\'')
            ->orWhere('e.name LIKE \'n/a\'')
            ->orWhere('e.teaser LIKE :TBD')
            ->orWhere('e.body LIKE :TBD')
            ->orWhere('e.dateTbd=true')
            ->orWhere('TIME(e.dateBegin) < :earlyMorning AND TIME(e.dateBegin) > :lateNight')
            ->setParameter('TBA', '%TBA%')
            ->setParameter('TBD', '%TBD%')
            ->setParameter('earlyMorning', '06:00:00')
            ->setParameter('lateNight', '23:00:00');

如何在此查詢中按“ where”子句分隔結果。 我需要使用where子句中列出的條件來顯示每個事件。

我看不到一種輕松實現此目的的方法,尤其是如果我們假設您正在使用它來檢索標准的學說實體集合時,因為附加的分組/屬性實際上並不是您可以傳遞給它們的東西。

如果您只需要對它們進行分組以在輸出時稍微不同地顯示它們,例如,在您的標記中,我會考慮在實體的類中添加其他方法,以允許您基於定義的相似標准檢測它們的“類型”在查詢中,例如使用標准的字符串匹配功能。

否則,您的選擇將是過濾集合(ArrayCollections帶有一種可以輕松做到這一點的方法)或將其分為多個查詢,考慮到您的方法,我認為您正在嘗試避免這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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