首页 > 后端开发 > php教程 > yii2 中 批量插入的BEHAVIORS问题

yii2 中 批量插入的BEHAVIORS问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 20:20:07
原创
1238 人浏览过

批量插入代码

Yii::$app->db->createCommand()->batchInsert($rangeDetailModel::tableName(),['type','range_id','value'],$branchArr)->execute();

想加入以下行为

public function behaviors()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<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()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<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就是简单的设置时间,还是自己来吧。

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板