yii2打印sql的方法:首先通过语句“Article::find()->joinWith('articleClass');”查询结构;接着调用createComment和getSql方法;最后通过“var_dump”打印出来即可。这种方法太不友好了,需要手动添加打印。
下面我们讲一种开启日志的方法:
在onfig配置文件的main-local文件中添加如下:
'components' => [
。。。。。省略
'log' => [
//消息跟踪级别,设置yii\log\Dispatcher::traceLevel属性
'traceLevel'=> YII_DEBUG ? 3 :0,
//日志目标,可定义多个
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning','info'],
'logVars'=>[],
//表示以yii\db\或者app\models\开头的分类都会写入这个文件
'categories'=>['yii\db\*','app\models\*'],
//表示写入到文件
'logFile'=>'@runtime/../../runtime/logs/sql_'.date('y_m_d').'.log',
],
],
],
],
];
记得在配置文件中,db的配置中加上'enableProfiling' => true, 否则不生效
这个时候我们可以看到写入的sql日志了: