我有2个实体:事件和卡片他们都有'position'
字段,我想要全部检索它们并按照数组中的位置对它们进行排序。
所以我会得到类似的东西:
array('Card_1 (position 1)', 'Event_3 (position 2)', 'Event 2 (position 3)', 'Card 2 (position 4)')
等等。
通常我会在Native SQL中使用类似UNION
的东西,使用Doctrine有更简单的方法吗?
答案 0 :(得分:0)
我无法使用本机查询,因为它让我获得了基数问题,并且使用映射的超类不是一个选项,因为这类类无法进行查询。
我分别检索了两组实体,合并了数组并使用了usort来完成这项工作:
$result = array_merge($events, $cards);
usort($result, function($a, $b) { return strcmp($a->getPosition(), $b->getPosition()); });
如果有人想出一个使用Doctrine的更好的解决方案,我很想看到它。