web-dev-qa-db-ja.com

QueryBuilderを使用した複数のWHERE

以下を使用すると、最後のwhereのみがクエリに追加されます。

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

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

私はそれが両方に気付くようにするためにこれをしなければなりませんでした

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

これは正しくないようですか?複数のwhere呼び出しで最初のアプローチを使用するにはどうすればよいですか?

17
Jake N

次のように->andWhereを使用できます。

->where("qi.content = " . $content->getId())
->andWhere("qi.queue = " . $child->getQueue()->getId());
25
Juan Sosa