Home >Backend Development >PHP Tutorial >yii2 中 批量插入的BEHAVIORS问题
批量插入代码
Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$branchArr)->execute();
想加入以下行为
public function behaviors()
<code>{ return [ [ 'class' => BlameableBehavior::className(), 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => ['create_by'], ActiveRecord::EVENT_BEFORE_UPDATE => 'lastupdate_by' ] ], 'timestamp' => [ 'class' => 'yii\behaviors\TimestampBehavior', 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => ['create_dt', 'lastupdate_dt'], ActiveRecord::EVENT_BEFORE_UPDATE => ['lastupdate_dt'] ] ] ]; } 这个行为在AR中是默认使用的 但是我用BATCHINSERT就不行 我试过这么写 然偶没什么软用 $beh['yii\behaviors\BlameableBehavior']=[ ActiveRecord::EVENT_BEFORE_INSERT => ['create_by'], ActiveRecord::EVENT_BEFORE_UPDATE => 'lastupdate_by' ]; Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$areaArr)->attachBehaviors($beh)->execute();</code>
批量插入代码
Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$branchArr)->execute();
想加入以下行为
public function behaviors()
<code>{ return [ [ 'class' => BlameableBehavior::className(), 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => ['create_by'], ActiveRecord::EVENT_BEFORE_UPDATE => 'lastupdate_by' ] ], 'timestamp' => [ 'class' => 'yii\behaviors\TimestampBehavior', 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => ['create_dt', 'lastupdate_dt'], ActiveRecord::EVENT_BEFORE_UPDATE => ['lastupdate_dt'] ] ] ]; } 这个行为在AR中是默认使用的 但是我用BATCHINSERT就不行 我试过这么写 然偶没什么软用 $beh['yii\behaviors\BlameableBehavior']=[ ActiveRecord::EVENT_BEFORE_INSERT => ['create_by'], ActiveRecord::EVENT_BEFORE_UPDATE => 'lastupdate_by' ]; Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$areaArr)->attachBehaviors($beh)->execute();</code>
createCommand
是 dao ,已经脱离了 ActiveRecord.
看你的ar就是简单的设置时间,还是自己来吧。