yii2 - 在 Yii2 中获取原始 sql

标签 yii2

这个问题在这里已经有了答案:





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_dumpActiveQuery 生成的 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/

相关文章:

php - yii2 外键下拉

php - 如何在 yii2 中向 sql 表的现有值添加值?

php - 如何在 Yii2 框架中处理 CSRF 验证?

php - 无法在 Yii2 中使用 dropDownList 取消设置外键值

javascript - Yii2 通过点击链接加载模态

php - YII 无法读取 Postgres 9.4 中的 BIGINT。静默转换为 MAX_INT。适用于 9.5

php - 找不到 Yii Basic 404 页面

javascript - 滚动并放大 morris 图表数据已折叠

php - Yii2 - 基于 dropDownList 显示表单字段

javascript - Yii2 BootstrapAsset 未加载 bootstrap.js