public function getAllTags()
    {
        $qb = $this->createQueryBuilder('c');

        $qb
            ->select('c.tags')
            ->where($qb->expr()->isNotNull('c.tags'))
            ->distinct()
        ;

        $tagStrings = array_map('current', $qb->getQuery()->getScalarResult());
        $distinctTags = array();

        foreach ($tagStrings as $tagString) {
            foreach (explode(',', $tagString) as $tag) {
                if (!in_array($tag, $distinctTags)) {
                    array_push($distinctTags, $tag);
                }
            }
        }

        return $distinctTags;
    }