Php 原则:如何在一个查询中将聚合或标量映射到实体?

Php 原则:如何在一个查询中将聚合或标量映射到实体?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我已经搜索了一段时间,但找不到任何我想要做的例子,大部分讨论都是关于延迟加载的 我要做的是将查询的副产品映射到我的实体,但不将该属性持久化/存储在数据库中 例如,在这个查询中,我选择了一个距离,我希望能够通过$entity->GetDistance()访问该值,而不必在PHP中重新计算该值 $queryBuilder->addSelect('GEO_DISTANCE(:latitude, :longitude, job.longitude, job.latitude) AS HIDDEN

我已经搜索了一段时间,但找不到任何我想要做的例子,大部分讨论都是关于延迟加载的

我要做的是将查询的副产品映射到我的实体,但不将该属性持久化/存储在数据库中

例如,在这个查询中,我选择了一个距离,我希望能够通过$entity->GetDistance()访问该值,而不必在PHP中重新计算该值

$queryBuilder->addSelect('GEO_DISTANCE(:latitude, :longitude, job.longitude, job.latitude) AS HIDDEN d')
->having('d < :distance')
->setParameter('distance', $distance)
$queryBuilder->addSelect('GEO_DISTANCE(:latitude,:longitude,job.longitude,job.latitude)作为隐藏的d')
->有('d<:距离')
->setParameter('distance',$distance)

如何通过一个查询将“d”映射到实体?

您可以将DTO与新语句结合使用,因为这看起来可能会起作用,但除非我错了,否则这意味着您必须维护所需的确切属性,这会在您想要修改实体时添加额外步骤。我想删除“隐藏”可能更容易所以在结果集中返回d,然后为每个结果循环调用$entity->setDistance()?