我有查询:
$popular = self::find()
->from(self::tableName() . ' as t')
->with('user');
Run Code Online (Sandbox Code Playgroud)
当我尝试打印sql时:
$popular->createCommand()->rawSql
Run Code Online (Sandbox Code Playgroud)
它给了我:
SELECT * FROM "themes" "t"
Run Code Online (Sandbox Code Playgroud)
那么我可以使用"join"获得完整的原始查询:
SELECT * FROM "themes" "t" LEFT JOIN "users" u ON u.user_id = t.author_id
Run Code Online (Sandbox Code Playgroud)
它已在这里得到解答.
您可以var_dump为这样的ActiveQuery实例生成SQL :
var_dump($query->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
Run Code Online (Sandbox Code Playgroud)
但是,我建议使用内置的调试模型和面板.
PS对于您的特定查询 - with()不执行JOIN,而是执行其他查询并使用实际相关记录填充关系属性.要使用JOIN,您需要明确指定它,例如joinWith().
| 归档时间: |
|
| 查看次数: |
11867 次 |
| 最近记录: |