Doctrine 2 WHERE IN - 整数的无效输入语法:"Array"

Doctrine 2 WHERE IN - invalid input syntax for integer: "Array"

我正在尝试获取特定用户的用户帐户。

基本代码:

$ownerIds = array();
foreach ($owners as $owner) {
    $ownerIds[] = $owner->getId();
}
    $qb = $this->entityManager
    ->createQueryBuilder();

然后我尝试了以下操作:

1.

$qb->select('a')
    ->from('Account', 'a')
    ->andWhere('a.owner IN (?1)')
    ->setParameters(array(
        1 => $ownerIds
    );

2.

$qb->select('a')
        ->from('Account', 'a')
        ->add('where', $qb->expr()->in('a.owner', '?1'))
        ->setParameters(array(
            1 => $ownerIds
        );

我也试过用参数名':name'切换问号

$qb->select('a')
        ->from('Account', 'a')
        ->add('where', $qb->expr()->in('a.owner', ':name'))
        ->setParameters(array(
            ':name' => $ownerIds
        );

但我仍然收到此错误:整数的无效输入语法:"Array"

试试这个:

$qb->select('a')
   ->from('Account', 'a')
   ->andWhere($qb->expr()->in('a.owner', $ownerIds));

希望对您有所帮助。