带有ids的数组的doctrine2顺序

Mar*_*rez 5 doctrine-query symfony doctrine-orm doctrine-odm

如何通过带有id的数组使用doctrine2命令?

我有这个问题:

$qb = $this->createQueryBuilder('u')
        ->select('u', 'n', 'c')
        ->leftJoin('u.notifications', 'n')
        ->leftJoin('u.channel', 'c')
        ->andWhere('u.id IN (:ids)')
        ->setParameter('ids', $ids);
Run Code Online (Sandbox Code Playgroud)

我希望结果与带有id的数组具有相同的顺序,是否可以这样做?

谢谢

解:

使用FIELD mysql扩展与https://github.com/beberlei/DoctrineExtensions

:)

谢谢

Bou*_*egh 5

简单的解决方案,不需要预先分类查询结果:

 $idPositions = array_flip($userIds); // Mapping of id to position
 usort($users, function($userA, $userB) use ($idPositions) {
     return $idPositions[$userA->id] - $idPositions[$userB->id];
 });
Run Code Online (Sandbox Code Playgroud)


Mar*_*rez 0

我找到了解决方案,可以使用 FIELD mysql 扩展https://github.com/beberlei/DoctrineExtensions

谢谢

马克