我已经搜索了很多关于如何将symfony doctrine查询转换为普通的mysql查询以进行调试的目的。
就像我在codeIgniter中一样$this->db->last_query();
它将活动记录转换为mysql普通查询以进行调试。
所以我的问题是可以在symfony 1.4或symfony2中将教义转换为正常查询以进行调试,以及关键字是什么。
我的学说查询是
$q_fixed = Doctrine_Query::CREATE()
->select('u.name')
->from("fields u")
->where("u.field_type_id=?", "1")
->leftJoin("u.FieldType t")
->leftJoin("u.FieldCategory c")
->groupBy("u.id");
如何将其转换为普通的mysql查询?
您的帮助将不胜感激。
谢谢
答案 0 :(得分:1)
在symfony2中,您可以在查询对象上使用getSql()
,但对于绑定参数,您将在查询中使用?
而不是提供的参数,它将不会使用提供的参数提供完整查询
$query = $this->createQueryBuilder('u');
$query->select('u.name')
->from("fields u")
->where("u.field_type_id=?", "1")
->leftJoin("u.FieldType t")
->leftJoin("u.FieldCategory c")
->groupBy("u.id");
echo $query->getQuery()->getSql();
答案 1 :(得分:0)
只需运行控制器的开发版本并从调试工具栏中复制它。
$configuration = ProjectConfiguration::getApplicationConfiguration('myapp', 'dev', true);
答案 2 :(得分:0)
在Symfony 1.4中,您可以使用getSqlQuery()
对象的Doctrine_Query
方法。它将返回从dql转换的sql查询。请注意,它可能包含占位符而不是实际的参数值,您需要在执行时用正确的值替换它。