如何在查找或读取时检索cakephp使用的查询

时间:2012-05-21 05:20:23

标签: cakephp

通常我们通过检查sql-dump来检查查找操作。但是,如果通过ajax完成查询操作则不可能。我们怎样才能检查任何找到的操作whick cakePhp在backgoround中完成并以任何方式在pr()中打印它?

2 个答案:

答案 0 :(得分:0)

如果你在控制器代码中给$this->layout='ajax',那么就不会显示查询。所以如果要查看查询,只需将布局设置为正常布局(仅用于测试)并检查查询然后还原代码。

答案 1 :(得分:0)

因此,要查找查询,您必须执行以下步骤

1-现在转到cake文件夹并找到此路径 cake \ libs \ model \ datasources \ dbo \ dbo_mysql.php

2-找到函数 _execute 。该函数负责cakephp从其函数执行的所有查询。

3-调试$ sql变量,如

function _execute($sql) {
            echo $sql;
        return mysql_query($sql, $this->connection);
    }

4-在cakephp后台检索功能之后死掉代码。喜欢

$referral = $this->find('first', array(
            'conditions' => array('Referral.id' => $id)
        ));
die();

5-如果这是ajax调用,你可以在firebug中查看查询。

注意:最后显示的查询将是您希望查询之前