如何从createQueryBuilder获取sql?

Dim*_*tri 10 php doctrine symfony doctrine-orm

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

我的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();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢大家的帮助.最好的祝福

编辑

要获取sql,您必须:

echo $query->getQuery()->getSql();
Run Code Online (Sandbox Code Playgroud)

谢谢大家!

Jav*_*vad 18

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


M K*_*aid 5

你需要调用getSql()getQuery()对象

echo $query->getQuery()->getSql();
Run Code Online (Sandbox Code Playgroud)