2013-02-22 64 views
0

我有主義的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條款中列出的每個事件。

回答

0

我看不出一種方法來實現這一點,特別是如果我們假設您使用它來檢索標準的學說實體集合,因爲額外的分組/屬性並不是真的可以傳入的東西這些。

如果你需要將它們分組,以便在輸出時稍微不同,比如說,在你的標記中,我會考慮在你的實體類中添加額外的方法,以便檢測它們基於哪個「類型」根據您的查詢中定義的類似標準,例如使用標準字符串匹配功能。

否則,你的選擇將會過濾集合(ArrayCollections帶有一個方法來做這件事很容易)或將它分離成多個查詢,給出你的方法,我假設你試圖避免。