2014-03-07 41 views
7

你知道我可以從我的createQueryBuilder中獲取sql嗎?如何從createQueryBuilder獲取sql?

我的實體/ 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(); 

謝謝大家!

回答

15

您可以從$query->getQuery()->getSQL()得到的只是記住的參數會產生而不是值。
如果您想要通過參數和值獲取完整的SQL查詢,請在瀏覽器中的頁面的DEV模式下查看剖析器工具欄。

+0

謝謝你的幫助! ++ – Dimitri

3

你需要調用getSql()getQuery()對象

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

感謝您的快速回答! – Dimitri