如何从 DQL 查询返回对象?

Mr *_*r B 5 php dql doctrine-orm

我在 Doctrine 2 中编写了一个 DQL 查询:

$qb->select('r.position')
    ->from('\Entities\Races', 'r')
    ->where($qb->expr()->eq('r.entrantId', ':entrant_id'))
    ->setParameter('entrant_id', $this->entrantId);
$query = $qb->getQuery();
$aRaces = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

目前它以数组形式返回查询结果,如下所示:

Array
(
    [0] => Array
        (
            [position] => 10
        )

    [1] => Array
        (
            [position] => 4
        )
)
Run Code Online (Sandbox Code Playgroud)

我希望结果返回一个 Races对象数组,以便我可以访问与该对象关联的方法(我很确定以前版本的 Doctrine 默认返回对象)。

我试过:

$aRaces = $query->getResult(Query::HYDRATE_OBJECT);
Run Code Online (Sandbox Code Playgroud)

但这并没有什么不同。

感谢帮助

J0H*_*0HN 5

您只position从数据库中获取列。尝试替换select('r.position')select(r). 请参阅DQL 参考

如果需要只有position属性的对象,请参考部分对象