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

时间:2015-07-20 15:02:36

标签: cakephp-3.0

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

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

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

2 个答案:

答案 0 :(得分:2)

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

$q = $this->Model->find('all');
$this->log($q->sql()); // log raw sql query

答案 1 :(得分:1)

$query = $this->find();
debug($query);

$query是一个查询对象,您可以从中获取原始SQL表达式。