从cakephp finder方法中检索sql查询

时间:2010-12-14 16:51:27

标签: php cakephp cakephp-1.3

我正在创建一个行为,该行为将由控制器中的特定Model执行的sql查询记录到表中。正在寻找一种方法来返回我为特定finder方法执行的sql查询(比如$ this-> MyModel-> find('all'))我在面包店找到了我可以使用$ this-> MyModel- > find('sql'),但对我不起作用。有人知道我怎么能做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以将此功能放在app_model.php中:

function getLastQueries()
{
    $dbo = $this->getDatasource();
    $logs = $dbo->_queriesLog;

    return $logs;
}

从任何模型($ this-> getLastQueries())或控制器($ this-> Model-> getLastQueries())调用它来获取它们。

答案 1 :(得分:0)

$ this-> Cake本身不支持Model-> find('sql')。您必须按照Bakery文章中的其余说明来安装新的DBO驱动程序,并在AppModel中添加对find('sql')方法的支持。一旦你这样做,它应该能够得到你想要的东西。

http://bakery.cakephp.org/articles/grant_cox/2008/06/23/get-the-find-query-sql-rather-than-query-result