Aai*_*ike 6 php symfony doctrine-orm
现在我有一个与Address实体有1:1关系的Profile实体
如果我创建以下简单查询
$this->qb = $this->_em->createQueryBuilder()
->select('e')
->from($this->_entityName, 'e')
;
Run Code Online (Sandbox Code Playgroud)
它返回一些这样的数据:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
address:
city: Brussel
country: BE
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,但现在我想添加一个年龄字段.当我这样做时它会起作用:
$this->qb = $this->_em->createQueryBuilder()
->select('e','YEAR(CURRENT_DATE()) - YEAR(e.dateOfBirth) AS age')
->from($this->_entityName, 'e')
;
Run Code Online (Sandbox Code Playgroud)
但结果最终是:
0:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
address:
city: Brussel
country: BE
age: '42'
Run Code Online (Sandbox Code Playgroud)
因此,它将年龄放在不同的结果中,并将实体中的所有数据放在0键中.现在我怎样才能使它成为实体数据的一部分?
这就是我希望它:
firstname: Test
lastname: Bla
gender: male
dateOfBirth: '1972-03-14'
age: 36
address:
city: Brussel
country: BE
Run Code Online (Sandbox Code Playgroud)
而且结果目前是这样的,因为JMSSerializer,实体中有更多的字段没有被序列化但是它们仍然从数据库中取出...有什么方法可以让doctrine只检索所需的在保持相同结果的同时?
您可以向实体添加一个辅助方法,Profile
该方法将返回计算出的年龄:
public function getAge()
{
// calculate age here
$age = ..... ;
return $age;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3255 次 |
最近记录: |