现在我有一个与地址实体具有1:1关系的个人资料实体
如果我创建以下简单查询
$this->qb = $this->_em->createQueryBuilder()
->select('e')
->from($this->_entityName, 'e')
;
它返回一些这样的数据:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
address:
city: Brussel
country: BE
这正是我想要的,但现在我想添加一个年龄字段。 当我这样做的时候它会起作用:
$this->qb = $this->_em->createQueryBuilder()
->select('e','YEAR(CURRENT_DATE()) - YEAR(e.dateOfBirth) AS age')
->from($this->_entityName, 'e')
;
但结果最终是:
0:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
address:
city: Brussel
country: BE
age: '42'
因此,它将年龄放在不同的结果中,并将实体中的所有数据放在0键中。 现在我怎样才能让年龄成为实体数据的一部分呢?
这就是我希望它:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
age: 36
address:
city: Brussel
country: BE
目前结果也是如此,因为JMSSerializer,实体中有更多的字段没有被序列化,但它们仍然是从数据库中取出的...... 有什么方法可以让教条只检索所需的字段,同时保持相同的结果?
答案 0 :(得分:1)
您可以向Profile
实体添加一个帮助方法,该方法将返回计算出的年龄:
public function getAge()
{
// calculate age here
$age = ..... ;
return $age;
}