《PHP應用:Yii2如何批量添加數據》要點:
本文介紹了PHP應用:Yii2如何批量添加數據,希望對您有用。如果有疑問,可以聯系我們。
相關主題:YII框架
PHP實戰批量添加這個操作,在實際開發中經常用得到,今天小編抽空給大家整理些有關yii2批量添加的問題,感興趣的朋友一起看看吧.
PHP實戰在上篇文章給大家介紹了關于淺析Yii2 gridview實現批量刪除教程,當然,著重點在于怎么去操作gridview了,今兒我們來好好談談yii2如何批量添加數據?
PHP實戰有同學嚷嚷了,這還不簡單,我foreach一循環,每個循環里面直接把數據插入到數據庫,簡單粗暴完事!我擦嘞,哥,你要是跟我在一個公司,我覺得第二天見到你的概率可就不大了!
PHP實戰話不多說,說多了你在罵我,我們步入正題,先看一個簡單到小學生都認識的表結構
PHP實戰
//test
id
name
PHP實戰我們現在就是要在yii2中對這張數據表批量插入10條數據
PHP實戰我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事
PHP實戰
insert into test (name) values ('zhangsan'), ('lisi');
PHP實戰分析都分析完了,好吧,趕緊看看具體實現
PHP實戰
//假如 $names = ['zhangsan', 'lisi'];
$data = [];
foreach ($names $k => $v) {
$data[] = [$v];
}
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
PHP實戰我相信很多人都是沖著AR能不能實現批量插入來的,理由無非就是更平安更方便操作唄.但是官方手冊貌似沒有,沒有,沒有...心都碎了,竟然沒有,至少我沒有找到,你找到了請點擊原文找到我并聯系我,我也si分的需要方法啊.
PHP實戰不過不巧的是,我找到一個跟AR相關聯的操作辦法,我們共同分享參考一下看看具體怎么回事
PHP實戰假設有一個Post類的數組 $models,你就可以這樣操作
PHP實戰
use yii\helpers\ArrayHelper;
$rows = [];
foreach ($models as $model) {
if ($model->validate()) {
$rows[] = $model->attributes;
}
}
$rows = ArrayHelper::getColumn($models, 'attributes');
$postModel = new Post;
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), $postModel->attributes(), $rows)->execute();
//當然啦,上面給出的是插入所有的字段,但事實往往事與愿違,也簡單,稍作調整即可
$rows[] = [
'title' => $model->title,
'content' => $model->content,
];
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();
PHP實戰雖然又回到了batchInsert上,不過沒關系,該驗證的都驗證了,平安是無須擔心的.
PHP實戰以上所述是小編給大家介紹的Yii2如何批量添加數據的相關知識,希望對大家有所贊助!
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6619.html