42 * @param string $seed |
42 * @param string $seed |
43 */ |
43 */ |
44 public function getCompletion($seed) |
44 public function getCompletion($seed) |
45 { |
45 { |
46 $qb = $this->getEntityManager()->createQueryBuilder(); |
46 $qb = $this->getEntityManager()->createQueryBuilder(); |
47 $qb->select('DISTINCT t.label'); |
47 $qb->select('t.label', 'COUNT(dt.id) AS nb_docs'); |
48 $qb->from('WikiTagBundle:Tag','t'); |
48 $qb->from('WikiTagBundle:Tag','t'); |
|
49 $qb->leftJoin('t.documents', 'dt', 'WITH', 't = dt.tag'); |
|
50 $qb->addGroupBy('t.label'); |
49 $qb->where($qb->expr()->orx( |
51 $qb->where($qb->expr()->orx( |
50 $qb->expr()->like('t.label',$qb->expr()->literal(addcslashes(mysql_real_escape_string($seed),"%_")."%")), |
52 $qb->expr()->like('t.label',$qb->expr()->literal(addcslashes(mysql_real_escape_string($seed),"%_")."%")), |
51 $qb->expr()->like('t.label',$qb->expr()->literal("%".addcslashes(mysql_real_escape_string($seed),"%_"))), |
53 $qb->expr()->like('t.label',$qb->expr()->literal("%".addcslashes(mysql_real_escape_string($seed),"%_"))), |
52 $qb->expr()->like('t.label',$qb->expr()->literal("% ".addcslashes(mysql_real_escape_string($seed),"%_")."%")) |
54 $qb->expr()->like('t.label',$qb->expr()->literal("% ".addcslashes(mysql_real_escape_string($seed),"%_")."%")) |
53 )); |
55 )); |