有没有办法输出symfony中的propel选择生成的sql?

时间:2009-11-02 15:47:48

标签: symfony1 propel

我想输出由symfony propel select生成的查询以进行测试。有没有办法做到这一点?我知道我可以使用sf_debug栏,但有时我需要在sf_debug栏尚未加载或根本不加载的情况下看到该语句。

4 个答案:

答案 0 :(得分:4)

Timmow是正确的,有Criteria::toString()方法,但是当对象被引用为字符串时,它不是自动调用的神奇_toString()方法。

如果您想查看SQL,则必须明确调用Criteria::toString()

$c = new Criteria();
// HERE: add criteria
// what's it do?
echo $c->toString(); // oh, that's what it does

答案 1 :(得分:0)

Propel Criteria对象有一个toString方法,因此您应该只需将/ var_dump / log回显到您感兴趣的条件对象的文件

答案 2 :(得分:0)

查看Jobeet教程的第6天Debugging Propel generated SQL可能也会有所帮助。如果您在调试环境中,则将原始查询输出到日志文件。因为我使用Doctrine,所以不是100%肯定。

答案 3 :(得分:0)

在构建条件之后,您将获得生成的SQL语句:

    $params= array();
    $resulting_sql_statement = BasePeer::createSelectSql($criteria,$params);