使用QueryBuilder的多个WHERE

Jak*_*e N 16 query-builder symfony doctrine-orm

使用以下内容时,只有最后一个where添加到我的查询中;

$qb = $this->getEntityManager()->createQueryBuilder();

$qb->select(array('qi'))
    ->from('Table:Qi', 'qi')
    ->where("qi.content = " . $content->getId())
    ->where("qi.queue = " . $child->getQueue()->getId());
Run Code Online (Sandbox Code Playgroud)

我必须这样做才能注意到这两点

$qb->select(array('qi'))
    ->from('Table:Qi', 'qi')
    ->where("qi.content = " . $content->getId() . 
                 " AND qi.queue = " . $child->getQueue()->getId());
Run Code Online (Sandbox Code Playgroud)

这似乎不对?如何在多次where通话时使用第一种方法?

Jua*_*osa 24

你可以->andWhere像这样使用:

->where("qi.content = " . $content->getId())
->andWhere("qi.queue = " . $child->getQueue()->getId());
Run Code Online (Sandbox Code Playgroud)

  • 你实际上不需要**在`和Where`之前使用` - > where`.你总是可以使用` - >和Where();` (3认同)