yii2 中 批量插入的BEHAVIORS问题
程序员文章站
2022-05-22 13:24:47
...
批量插入代码
Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$branchArr)->execute();
想加入以下行为
public function behaviors()
{
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();
回复内容:
批量插入代码
Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$branchArr)->execute();
想加入以下行为
public function behaviors()
{
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();
createCommand
是 dao ,已经脱离了 ActiveRecord.
看你的ar就是简单的设置时间,还是自己来吧。