从 ORM 获取原始 SQL 查询字符串

Rob*_*röm 4 cakephp-3.0

如何获取从 ORM 发送到服务器的原始 SQL 字符串?我如何拦截它以便进行自定义工作?

我想将查询转发给自定义驱动程序。我的目标是来自 Linux 环境的通过 NodeJS 的 MS SQL Server。

但我不想重新发明轮子。我想重用现有的 SqlServer 查询生成器。

Mel*_*vin 5

只要你的查询不是由 toArray() 或类似的东西执行的,你就可以使用 $q->sql() 来检索 cakePHP 将执行的原始 sql 查询:

$q = $this->Model->find('all');
$this->log($q->sql()); // log raw sql query
Run Code Online (Sandbox Code Playgroud)