Yii::$service->info->coll() 这样来查询数据,如何打印出实际生成的sql查询语句
目前,这个得进入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(), ]; }
{"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}"]}
// 输出SQL语句 $commandQuery = clone $query; echo $commandQuery->createCommand()->getRawSql(); exit;
这样,就报上面的错误
出来报错,自己先看看报错信息!!!
报错:"Calling unknown method: yii\\mongodb\\ActiveQuery::createCommand()"
"Calling unknown method: yii\\mongodb\\ActiveQuery::createCommand()"
mongodb的query,你打印sql? mongodb哪有sql?
mongodb
query
sql