yii2 部分很实用的代码

检查执行的sql

$query->createCommand()->getRawSql()
 
 
写日志

// 记录日志

\Yii::error('生成失败.' . $index, $this->id);
 
Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。
Yii::info():记录一条消息来传达一些有用的信息。
Yii::warning():记录一个警告消息用来指示一些已经发生的意外。
Yii::error():记录一个致命的错误,这个错误应该尽快被检查。
 
批量插入
$res = \Yii::$app->db->createCommand()->batchInsert(
test::tableName(), [
'id',
'name',
], $param
)->execute()
;
 
yii2 exists 用法
不能实现 提示 Calling unknown method: yii\\db\\Query::getQueryBuilder()
$query->exists((new Query())->select('c.submitId')->from(BUrgeToReport::tableName() . ' as c ')->where(['c.submitId' => 'a.id']));
成功实现
$query->where([
'exists',
(new Query())->from(BUrgeToReport::tableName() . ' as c ')->where(['c.submitId' => 'a.id'])->select('c.submitId')
]);
参考: https://www.cnblogs.com/sign-ptk/p/7873613.html
A_AR::find()
->where([
'exists',
B_AR::find()->where("interval_id={{A}}.id")->andWhere(['code' => 'a'])
]);
红色部分需要这样写,如果写成
->where(['interval_id' => '{{A}}.id'])
会把条件'{{A}}.id'按字符串查询!

$query->where(

[
'exists',
// BUrgeToReport::find()->alias('c')->where(['c.submitId' => 'a.id'])->select('*')
// (new Query())->from(BUrgeToReport::tableName() . ' as c ')->where(['c.submitId' => 'a.id'])->select('c.id')
(new Query())->from(BUrgeToReport::tableName() . ' as c ')->where('c.submitId = a.id')->select('c.id')
]
);

猜你喜欢

转载自www.cnblogs.com/stillstep/p/10181070.html