Yii::$service->info->coll() 这样来查询数据,如何打印出实际生成的sql查询语句

问题咨询 · tgy3300 · 于 3年前 发布 · 1583 次阅读

Yii::$service->info->coll() 这样来查询数据,如何打印出实际生成的sql查询语句

共收到 4 条回复
Fecmall#13年前 0 个赞

目前,这个得进入coll这个函数,修改代码打印

1.yii2打印query 的sql语法:

$query = User::find()->where(['id'=>[1,2,3,4])->select(['username'])

// 输出SQL语句
$commandQuery = clone $query;
echo $commandQuery->createCommand()->getRawSql();

$users = $query->all();

2.fecmall实例说明,譬如:https://github.com/fecshop/yii2_fecshop/blob/master/services/Customer.php#L625

public function coll($filter = [])
    {
        $query = $this->_customerModel->find();
        $query = Yii::$service->helper->ar->getCollByFilter($query, $filter);
        return [
            'coll' => $query->all(),
            'count'=> $query->limit(null)->offset(null)->count(),
        ];
    }

如果进行打印,可以打断点输出。

public function coll($filter = [])
    {
        $query = $this->_customerModel->find();
        $query = Yii::$service->helper->ar->getCollByFilter($query, $filter);
		// 输出SQL语句
		$commandQuery = clone $query;
		echo $commandQuery->createCommand()->getRawSql();
		exit;
		
        return [
            'coll' => $query->all(),
            'count'=> $query->limit(null)->offset(null)->count(),
        ];
    }
tgy3300#23年前 0 个赞
{"name":"Exception","message":"Calling unknown method: yii\\mongodb\\ActiveQuery::createCommand()","code":0,"type":"yii\\base\\UnknownMethodException","file":"/mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/base/Component.php","line":300,"stack-trace":["#0 /mnt/hgfs/centoswww/server/web.zlserve.com/common/local/local_services/chat/info/InfoMongodb.php(66): yii\\base\\Component->__call()","#1 /mnt/hgfs/centoswww/server/web.zlserve.com/common/local/local_services/chat/Info.php(84): common\\local\\local_services\\chat\\info\\InfoMongodb->coll()","#2 /mnt/hgfs/centoswww/server/web.zlserve.com/appserver/local/local_modules/Chat/controllers/InfoController.php(289): common\\local\\local_services\\chat\\Info->coll()","#3 [internal function]: appserver\\local\\local_modules\\Chat\\controllers\\InfoController->actionTest()","#4 /mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()","#5 /mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/base/Controller.php(180): yii\\base\\InlineAction->runWithParams()","#6 /mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/base/Module.php(528): yii\\base\\Controller->runAction()","#7 /mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/web/Application.php(103): yii\\base\\Module->runAction()","#8 /mnt/hgfs/centoswww/server/web.zlserve.com/vendor/yiisoft/yii2/base/Application.php(386): yii\\web\\Application->handleRequest()","#9 /mnt/hgfs/centoswww/server/web.zlserve.com/appserver/web/index.php(90): yii\\base\\Application->run()","#10 {main}"]}
tgy3300#33年前 0 个赞
// 输出SQL语句
		$commandQuery = clone $query;
		echo $commandQuery->createCommand()->getRawSql();
		exit;

这样,就报上面的错误

Fecmall#43年前 0 个赞

出来报错,自己先看看报错信息!!!

报错:"Calling unknown method: yii\\mongodb\\ActiveQuery::createCommand()"

mongodbquery,你打印sql? mongodb哪有sql?

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics