【发布时间】:2009-11-02 15:47:48
【问题描述】:
我想输出 symfony propel select 生成的查询以进行测试。有没有办法做到这一点?我知道我可以使用 sf_debug 栏,但有时我需要在 sf_debug 栏尚未加载或根本不会加载的情况下查看语句。
【问题讨论】:
我想输出 symfony propel select 生成的查询以进行测试。有没有办法做到这一点?我知道我可以使用 sf_debug 栏,但有时我需要在 sf_debug 栏尚未加载或根本不会加载的情况下查看语句。
【问题讨论】:
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
【讨论】:
Propel Criteria 对象有一个toString 方法,因此您应该能够简单地将您感兴趣的条件对象 echo / var_dump / log 到文件中
【讨论】:
查看 Jobeet 教程的第 6 天,Debugging Propel generated SQL 也可能会有所帮助。如果您在调试环境中,原始查询将输出到日志文件。不是 100% 确定,因为我使用 Doctrine。
【讨论】:
您将在建立条件后以这种方式获得生成的 SQL 语句:
$params= array();
$resulting_sql_statement = BasePeer::createSelectSql($criteria,$params);
【讨论】: