Doctrine SELECT d.user AS用户不被允许?

时间:2016-10-03 15:01:27

标签: doctrine symfony

我尝试执行SELECT d.user AS user类型的查询。但这部分似乎不允许在Doctrine中使用。

我尝试按如下方式获得一个很好的数组:

array(
   'week' => 39
   'year' => 2016
   'user' => UserObject{}

我有以下DQL:

$qb = $this->createQueryBuilder('d')
        ->select("d.user AS user, WEEK(d.date, 3) AS week, DATE_FORMAT(d.date, '%x') AS year")
        ->join('d.user', 'u')
        ->orderBy('d.date', 'ASC')
        ->getQuery();

    return $qb->getResult();

当然,我可以执行select("d, etc但是我想直接将用户作为返回数组中的键。

我使用上面的代码得到的错误是: [Semantical Error] line 0, col 9 near 'user AS user,': Error: Invalid PathExpression. Must be a StateFieldPathExpression.

我已经添加了联接,但似乎没有帮助。

1 个答案:

答案 0 :(得分:1)

我不确定它会给你你想要的结果(也许你将不得不尝试Doctrine\ORM\Query::HYDRATE_ARRAY保湿器),但这样的东西可以做到吗?

$qb = $this->createQueryBuilder('d')
            ->select("user, WEEK(d.date, 3) AS week, DATE_FORMAT(d.date, '%x') AS year")
            ->leftJoin('d.user', 'user')
            ->orderBy('d.date', 'ASC')
            ->getQuery();

return $qb->getResult();