从Phalcon查询构建器获取原始sql

Ian*_*hek 10 phalcon

是否可以从Phalcon中的查询构建器实例中提取原始sql查询?像这样的东西?

$queryBuilder = new Phalcon\Mvc\Model\Query\Builder();
$queryBuilder
    ->from(…)
    ->where(…);

$rawSql = $queryBuilder->hypotheticalGetRawQueryMethod();
Run Code Online (Sandbox Code Playgroud)

Ian*_*hek 15

通过错误和试验,下面似乎工作.如果有人能确认是否有更好的方法,那就太好了.

$queryBuilder = new Builder();
$queryBuilder->from(…)->where(…);

$intermediate = $queryBuilder->getQuery()->parse();
$dialect      = DI::getDefault()->get('db')->getDialect();
$sql          = $dialect->select($intermediate);
Run Code Online (Sandbox Code Playgroud)

编辑:从2.0.3开始,你可以做到超级简单,请参阅评论以获取完整的详细信息:

$modelsManager->createBuilder()
    ->from('Some\Robots')
    ->getQuery()
    ->getSql()
Run Code Online (Sandbox Code Playgroud)