如何从createQueryBuilder获取sql?

时间:2014-03-07 16:54:21

标签: php symfony doctrine-orm doctrine

你知道如何从我的createQueryBuilder获取sql吗?

My Entity / DownloadRepository.php类:

 public function getLastDownload($limit)
    {
        $query = $this->createQueryBuilder('d');

        $query->select('l.ytId, d.title, d.date, d.id, l.creator')
            ->from('DimiYvmBundle:Log', 'l')
            ->where('d.ytId = l.ytId AND l.creator = :creator')
            ->orderBy('l.id', 'DESC')
            ->groupBy('l.ytId')
            ->setParameter('creator', 'n')
            ->setMaxResults($limit);

        // echo $query->getSQL(); => Doesn't work... 

        return $query->getQuery()->getResult();
    }

谢谢大家的帮助。 最好的问候

修改

要获取sql,您必须:

echo $query->getQuery()->getSql();

全部谢谢!

2 个答案:

答案 0 :(得分:17)

您可以从$query->getQuery()->getSQL()获取请记住,对于参数,它会产生而不是值。
如果要使用参数和值获取完整的SQL查询,请在浏览器中检查页面的DEV模式下的探查器工具栏。

答案 1 :(得分:4)

您需要在getSql()对象

上致电getQuery()
echo $query->getQuery()->getSql();