关于在Yii2.0中如何把ORM转换为SQL字符串 [ 2.0 版本 ]
在一些情况需要把ORM转换为SQL字符串以便调试。
一般人可能会推荐使用Debug模块,但是这样子太繁琐了。
我们可以采用以下方法来解决这个问题。
$query = User::find()->andWhere(['age' => 19])->andWhere(['like', 'name', 'test']);
echo $query->createCommand()->getRawSql();
自己动手尝试下吧。
然
注册时间:2013-04-19
最后登录:2020-02-01
在线时长:20小时52分
最后登录:2020-02-01
在线时长:20小时52分
- 粉丝14
- 金钱6504
- 威望110
- 积分7804
共 3 条评论
哎哟,不错哦!
赞!学习了!
$query = User::find()->andWhere(['age' => 19])->andWhere(['like', 'name', 'test']); //echo $query->createCommand()->getRawSql(); $query->createCommand()->queryAll(PDO::FETCH_COLUMN | PDO::FETCH_GROUP)
https://github.com/letwang/HookPHP/blob/master/vendor/Hook/Db/PdoConnect.php#L59
https://secure.php.net/manual/en/function.PDOStatement-setFetchMode.php
/** * 返回所有行的数组数据 * @param string $statement * @param array $parameter * @param int $type 数据结构: * <div><ol> * <li>PDO::FETCH_COLUMN * <p>返回第1列,[VALUE构成的索引数组]</p> * </li> * <li>PDO::FETCH_KEY_PAIR 或使用 PDO::FETCH_COLUMN | PDO::FETCH_UNIQUE * <p>返回前2列,[第一列为KEY => 第二列为VALUE]</p> * </li> * <li>PDO::FETCH_COLUMN | PDO::FETCH_GROUP * <p>返回前2列,[第一列为KEY => [第二列为VALUE,如果KEY重复,VALUE对应归类]]</p> * </li> * <li>PDO::FETCH_UNIQUE * <p>返回所有列,[第一列为KEY => [其余列为关联数组]]</p> * </li> * <li>PDO::FETCH_GROUP * <p>返回所有列,[第一列为KEY => [[其余列为关联数组,如果KEY重复,VALUE对应归类]]]</p> * </li> * <li>PDO::FETCH_OBJ * <p>返回所有列,对象形式</p> * </li> * </ol></div> * @return array */