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

时间:2015-07-22 10:32:16

标签: doctrine-orm where

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

基本代码:

$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
        );

但我仍然收到此错误:整数的输入语法无效:“数组”

1 个答案:

答案 0 :(得分:2)

试试这个:

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

希望这有帮助。