我的以下教条2 查询运行良好,它检索某个地理半径内的所有“标记”。
$qb->select('marker')
->from('SndSpecialistLocator\Entity\Marker', 'marker')
->where('DISTANCE(marker.location, POINT_STR(:point)) < :distance')
->setParameter('point', $point)
->setParameter('distance', $radius);
现在我想按距离对它们进行排序。
$qb->select('marker (DISTANCE(marker.location, POINT_STR(:point))) AS distance')
->from('SndSpecialistLocator\Entity\Marker', 'marker')
->where('DISTANCE(marker.location, POINT_STR(:point)) < :distance')
->setParameter('point', $point)
->orderBy('distance', 'DESC')
->setParameter('distance', $radius);
但不幸的是,这不起作用,我想知道这是否可能,因为距离不是我实体的真实属性,而是计算出来的?
这里的诀窍是什么?