我們使用symfony 1.0。我們有一個模塊與Propel對象一起工作。 sql-querys在「DB」菜單下的symfony-debugbar中可見。symfony - 日誌自定義推進查詢
我的問題是,我們還通過propel :: getRS(「select ...」)使用自定義的sql-querys 這個查詢在調試欄中不可見。
有沒有人有一個想法如何做到這一點?
我們使用symfony 1.0。我們有一個模塊與Propel對象一起工作。 sql-querys在「DB」菜單下的symfony-debugbar中可見。symfony - 日誌自定義推進查詢
我的問題是,我們還通過propel :: getRS(「select ...」)使用自定義的sql-querys 這個查詢在調試欄中不可見。
有沒有人有一個想法如何做到這一點?
推薦方式
標準的記錄器在symfony的將是推薦的方法:
從動作中:
$this->logMessage('executed SQL: '.$sql);
從模型中(或其他地方):
sfContext::getInstance()->getLogger()->info('executed SQL: '.$sql);
T hese方法會將您的SQL查詢插入調試工具欄中'執行鏈中正確位置'的'logs & msgs'選項卡中。
然而,如果你只是想看看查詢在的頂部「日誌&封郵件」選項卡,不需要它們存儲在永久性日誌,你可以使用$this->debugMessage($sql);
代替,這也意味着您可以一起查看查詢,而不是通過日誌執行鏈搜索它們。
我懷疑你可能希望這些SQL查詢出現在「DB」選項卡上,而不是一個潛在的最好方式
。這不是直接由symfony的支持,但你可以「砍」這個解決方案,而不是:
從動作中:
$this->logMessage(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
從模型內:
sfContext::getInstance()->getLogger()->info(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
這模仿symfony中用於記錄SQL查詢的調試選項的行爲,因此會將您的自定義SQL查詢推送到調試工具欄中的'DB'選項卡中。如果你願意的話,我可以給你定時[x.xx ms]選項來實現:)