我如何使用doctrine2通过带有ids的数组进行排序?
我有这个查询:
$qb = $this->createQueryBuilder('u')
->select('u', 'n', 'c')
->leftJoin('u.notifications', 'n')
->leftJoin('u.channel', 'c')
->andWhere('u.id IN (:ids)')
->setParameter('ids', $ids);
我希望结果与带有 ids 的数组具有相同的顺序,可以吗?
谢谢
解决方案:
使用FIELD mysql扩展https://github.com/beberlei/DoctrineExtensions
:)
谢谢
最佳答案
不需要预排序查询结果的简单解决方案:
$idPositions = array_flip($userIds); // Mapping of id to position
usort($users, function($userA, $userB) use ($idPositions) {
return $idPositions[$userA->id] - $idPositions[$userB->id];
});
关于symfony - doctrine2 按带有 ids 的数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834457/