Symfony2/Doctrine QueryBuilder l'aide et où()
Je suis en utilisant la méthode suivante dans une classe de dépôt de regarder pour certaines balises dans ma base de données:
public function getItemsByTag($tag, $limit = null)
{
$tag = '%'.$tag.'%';
$qb = $this->createQueryBuilder('c');
$qb->select('c')
->where($qb->expr()->like('c.tags', '?1'))
->setParameter(1, $tag)
->addOrderBy('c.clicks', 'DESC');
if (false === is_null($limit))
$qb->setMaxResults($limit);
return $qb->getQuery()->getResult();
}
Cela fonctionne bien.. Mais: Comment puis-je ajouter 2 autres variables (où: a examiné = 1, activé = 1)? J'ai essayé et où (), mais je ne pouvais pas le comprendre.
J'ai aussi découvert que quelque chose comme cela:
public function getItems($limit = null)
{
$qb = $this->createQueryBuilder('b')
->select('b')
->add('where', 'b.reviewed = 1')
->add('where', 'b.enabled = 1')
->addOrderBy('b.name', 'ASC');
//...
}
ne fonctionne pas, soit...
Un indice?
OriginalL'auteur Mike | 2012-01-16
Vous devez vous connecter pour publier un commentaire.
Je voudrais écrire comme ceci:
Vous pouvez également unir ceux
where
conditions:Je crois addOrderBy est utilisé, c'est que vous êtes la concaténation logique de la orderBy. Par exemple, si vous vouliez 2 orderBy paramètres, dont la première serait "orderBy", suivie par "addOrderBy'. Fonctionne de la même que la clause where. Le premier est ->où, ensuite, tous les suivants sont écrits '->addWhere'.
Merci, m'a sauvé quelques temps.
OriginalL'auteur Elnur Abdurrakhimov
De la manuel, de la manière suggérée est comme ci-dessous:
OriginalL'auteur xdazz