Yii2 活动记录到原始 sql

Yii2 Active Record to raw sql

我想将 yii2 的活动记录查询转换为原始 SQL 相当于检查查询是否正常工作。

使用toSql()方法

很容易将laravel的Eloquent ORM转换为原始SQL

https://laravel.com/api/8.x/Illuminate/Database/Query/Builder.html#method_toSql

有没有办法在yii2中实现这个结果,因为我只能找到从原始SQL到活动记录实现的解决方案。

如果还有不明白的地方再补充例子说明。

是的,您可以使用 属性 sql or the method rawSql()query->command,例如:

$querySql = Model::find()->where(...)->createCommand()->sql;
$querySql = Model::find()->where(...)->createCommand()->getRawSql();

// Or, if you want to use the query somewhere else
$query = Model::find()->where(...);
...
$sql = $query->createCommand()->sql;

如果您只是调试,在调试工具栏上查看查询可能更容易。