Doctrine Symfony 从关系对象中获取多个对象列和多个列
Doctrine Symfony getting multiple object columns and multiple columns from a relationship object
朋友们!我想从数据库中获取我的对象的选定列,以及相关对象的选定列。但是当我执行我的查询时,我得到了数据,但是相关的对象没有被转换成单独的数组,而是在主要请求对象的通用数组中返回。
我的查询:
$query = $this->createQueryBuilder('i')
->select('i.id', 'i.payStatus', 'contract.id as contract_id', 'contract.type as type')
->join('i.contract', 'contract');
return $query->getQuery()->getResult();
当前结果:
{
"id": 56,
"payStatus": 2,
"contract_id": 5,
"type": 2
}
预期结果:
{
"id": 56,
"payStatus": 2,
"contract": {
"contract_id": 5,
"type": 2
}
}
如有任何帮助,我将不胜感激!
当您 select 多个标量字段时,学说总是 return 具有所有“列”的平面数组。
我看到了两个选项:
- 您可以将
$query->getQuery()->getResult()
保存在您的查询方法中,自己映射并 return 映射结果。
- 如果你想将它映射到一些实体,你可以使用“本机查询”和“结果集映射”,这样你就可以在结果中嵌套对象,同时完全控制映射。
https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/native-sql.html
然而,在惯用的学说方式中,您应该尽可能避免原生查询。
朋友们!我想从数据库中获取我的对象的选定列,以及相关对象的选定列。但是当我执行我的查询时,我得到了数据,但是相关的对象没有被转换成单独的数组,而是在主要请求对象的通用数组中返回。
我的查询:
$query = $this->createQueryBuilder('i')
->select('i.id', 'i.payStatus', 'contract.id as contract_id', 'contract.type as type')
->join('i.contract', 'contract');
return $query->getQuery()->getResult();
当前结果:
{
"id": 56,
"payStatus": 2,
"contract_id": 5,
"type": 2
}
预期结果:
{
"id": 56,
"payStatus": 2,
"contract": {
"contract_id": 5,
"type": 2
}
}
如有任何帮助,我将不胜感激!
当您 select 多个标量字段时,学说总是 return 具有所有“列”的平面数组。
我看到了两个选项:
- 您可以将
$query->getQuery()->getResult()
保存在您的查询方法中,自己映射并 return 映射结果。 - 如果你想将它映射到一些实体,你可以使用“本机查询”和“结果集映射”,这样你就可以在结果中嵌套对象,同时完全控制映射。 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/native-sql.html 然而,在惯用的学说方式中,您应该尽可能避免原生查询。