> 백엔드 개발 > 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿