Doctrine:使用QueryBuilder自定义列别名

时间:2013-10-11 02:05:04

标签: php doctrine-orm doctrine

我有一个函数,使用QueryBuilder选择表中的所有列,我想在结果查询中添加一个自定义列。这就是我所拥有的:

$qb = $this->_em->createQueryBuilder();
            $qb->select(array('c', 'a'))
               ->from('models\Car', 'c')
               ->leftJoin('c.account', 'a')
               ->where('a.admin = 0');

现在,我想添加一个'天车在店里'专栏,在标准的MySQL中会是:

((UNIX_TIMESTAMP(c.daySold) - UNIX_TIMESTAMP(c.dayArrived))/86400) as days_car_in_store

如何通过将其添加到上面构造的查询中来实现这一目标?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情: -

$sql = "((UNIX_TIMESTAMP(c.daySold) - UNIX_TIMESTAMP(c.dayArrived))/86400)";

$qb->add('select', new Expr\Select(array('c', "{$sql} as days_car_in_store")))