I am using following method in a repository class to look for certain tags in my database:
public function getItemsByTag($tag, $limit = null)
{
$tag = \'%\'.
I would write it like this:
$qb = $this
->createQueryBuilder('c')
->where('c.tags LIKE :tag')
->andWhere('c.reviewed = 1')
->andWhere('c.enabled = 1')
->setParameter('tag', "%{$tag}%")
->orderBy('c.clicks', 'DESC')
->addOrderBy('b.name', 'ASC');
if ($limit) {
$qb->setMaxResults($limit);
}
return $qb->getQuery()->getResult();
You could also unite those where
conditions:
->where('c.tags LIKE :tag AND c.reviewed = 1 AND c.enabled = 1')