相关疑难解决方法(0)

如何在Doctrine 2中使用WHERE IN

我有以下代码,它给我错误:

Message: Invalid parameter number: number of bound variables does not match number of tokens 
Run Code Online (Sandbox Code Playgroud)

码:

public function getCount($ids, $outcome)
{
    if (!is_array($ids)) {
        $ids = array($ids);
    }
    $qb = $this->getEntityManager()->createQueryBuilder();
    $qb->add('select', $qb->expr()->count('r.id'))
       ->add('from', '\My\Entity\Rating r');
    if ($outcome === 'wins') { 
        $qb->add('where', $qb->expr()->in('r.winner', array('?1')));
    }
    if ($outcome === 'fails') {
        $qb->add('where', $qb->expr()->in('r.loser', array('?1')));
    }
    $qb->setParameter(1, $ids);
    $query = $qb->getQuery();
    //die('q = ' . $qb);
    return $query->getSingleScalarResult();
}
Run Code Online (Sandbox Code Playgroud)

数据(或$ ids):

Array
(
    [0] => 566
    [1] => 569
    [2] => 571 …
Run Code Online (Sandbox Code Playgroud)

php query-builder doctrine-orm

117
推荐指数
9
解决办法
17万
查看次数

标签 统计

doctrine-orm ×1

php ×1

query-builder ×1