如何检索find或read中使用的cakephp查询

如何检索find或read中使用的cakephp查询,cakephp,Cakephp,通常我们通过检查sql转储来检查查找操作。但如果查询操作是通过ajax完成的,这是不可能的。我们如何检查cakePhp在backgoround中执行的任何查找操作以及在pr()中打印它的任何方式?如果在控制器代码中提供$this->layout='ajax',则它不会显示查询。因此,如果您想查看查询,只需将布局设置为正常布局(仅用于测试)并检查查询,然后还原代码。因此,要查找查询,必须遵循以下步骤 1-现在转到cake文件夹并找到此路径cake\libs\model\datasources\db

通常我们通过检查sql转储来检查查找操作。但如果查询操作是通过ajax完成的,这是不可能的。我们如何检查cakePhp在backgoround中执行的任何查找操作以及在pr()中打印它的任何方式?

如果在控制器代码中提供
$this->layout='ajax'
,则它不会显示查询。因此,如果您想查看查询,只需将布局设置为正常布局(仅用于测试)并检查查询,然后还原代码。

因此,要查找查询,必须遵循以下步骤

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

2-查找函数\u执行。这个函数负责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中查看查询


注意:最后显示的查询将是您的desire query before die

是否有其他打印查询的方法?