这个问题在这里已经有了答案:
Log the actual SQL query using ActiveRecord with Yii2?
(7 个回答)
4年前关闭。
我有查询:
$popular = self::find()
->from(self::tableName() . ' as t')
->with('user');
当我尝试打印 sql 时:
$popular->createCommand()->rawSql
它给了我:
SELECT * FROM "themes" "t"
那么我可以通过“join”获得完整的原始查询:
SELECT * FROM "themes" "t" LEFT JOIN "users" u ON u.user_id = t.author_id
最佳答案
已经回答了 here .
您可以 var_dump
为 ActiveQuery
生成的 SQL像这样的实例:
var_dump($query->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
但是,我建议使用内置的调试模型和面板。
附言至于您的特定查询 -
with()
不执行 JOIN
,而是执行额外的查询并用实际的相关记录填充关系属性。使用 JOIN
,您需要明确指定它,例如使用 joinWith()
.
关于yii2 - 在 Yii2 中获取原始 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533654/