Yii2如何批量添加數(shù)據(jù)
批量添加這個操作,在實際開發(fā)中經(jīng)常用得到,今天小編抽空給大家整理些有關(guān)yii2批量添加的問題,感興趣的朋友一起看看吧。
在上篇文章給大家介紹了關(guān)于淺析Yii2 gridview實現(xiàn)批量刪除教程,當(dāng)然,著重點在于怎么去操作gridview了,今兒我們來好好談?wù)剏ii2如何批量添加數(shù)據(jù)?
有同學(xué)嚷嚷了,這還不簡單,我foreach一循環(huán),每個循環(huán)里面直接把數(shù)據(jù)插入到數(shù)據(jù)庫,簡單粗暴完事!我擦嘞,哥,你要是跟我在一個公司,我覺得第二天見到你的概率可就不大了!
話不多說,說多了你在罵我,我們步入正題,先看一個簡單到小學(xué)生都認識的表結(jié)構(gòu)
//test id name
我們現(xiàn)在就是要在yii2中對這張數(shù)據(jù)表批量插入10條數(shù)據(jù)
我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事
insert into test (name) values ('zhangsan'), ('lisi');
分析都分析完了,好吧,趕緊看看具體實現(xiàn)
//假如 $names = ['zhangsan', 'lisi'];
$data = [];
foreach ($names $k => $v) {
$data[] = [$v];
}
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
我相信很多人都是沖著AR能不能實現(xiàn)批量插入來的,理由無非就是更安全更方便操作唄。但是官方手冊貌似沒有,沒有,沒有。。。心都碎了,竟然沒有,至少我沒有找到,你找到了請點擊原文找到我并聯(lián)系我,我也si分的需要方法啊。
不過不巧的是,我找到一個跟AR相關(guān)聯(lián)的操作方法,我們共同分享參考一下看看具體怎么回事
假設(shè)有一個Post類的數(shù)組 $models,你就可以這樣操作
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();
//當(dāng)然啦,上面給出的是插入所有的字段,但事實往往事與愿違,也簡單,稍作調(diào)整即可
$rows[] = [
'title' => $model->title,
'content' => $model->content,
];
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();
雖然又回到了batchInsert上,不過沒關(guān)系,該驗證的都驗證了,安全是無須擔(dān)心的。
以上所述是小編給大家介紹的Yii2如何批量添加數(shù)據(jù)的相關(guān)知識,希望對大家有所幫助!
- Yii中的relations數(shù)據(jù)關(guān)聯(lián)查詢及統(tǒng)計功能用法詳解
- Yii統(tǒng)計不同類型郵箱數(shù)量的方法
- yii gridview實現(xiàn)時間段篩選功能
- Yii 2.0在Grid中格式化時間方法示例
- yii2實現(xiàn)根據(jù)時間搜索的方法
- yii2超好用的日期組件和時間組件
- Yii2超好用的日期和時間組件(值得收藏)
- Yii2 批量插入、更新數(shù)據(jù)實例
- Yii2框架數(shù)據(jù)庫簡單的增刪改查語法小結(jié)
- yii 框架實現(xiàn)按天,月,年,自定義時間段統(tǒng)計數(shù)據(jù)的方法分析
相關(guān)文章
thinkPHP多域名情況下使用memcache方式共享session數(shù)據(jù)的實現(xiàn)方法
這篇文章主要介紹了thinkPHP多域名情況下使用memcache方式共享session數(shù)據(jù)的實現(xiàn)方法,較為詳細的分析了session的原理及多服務(wù)器共享session的相關(guān)技巧,需要的朋友可以參考下2016-07-07
php導(dǎo)出word文檔與excel電子表格的簡單示例代碼
本篇文章主要是對php導(dǎo)出word文檔與excel電子表格的簡單示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03
PHP使用Apache的偽靜態(tài)功能實現(xiàn)“網(wǎng)頁404時跳轉(zhuǎn)指定頁面
這篇文章主要介紹了PHP使用Apache的偽靜態(tài)功能實現(xiàn)“網(wǎng)頁404時跳轉(zhuǎn)指定頁面,這是比較常見的頁面,文中的方法可以很好的解決,有需要的同學(xué)可以借鑒下2021-03-03
VSCode+PHPstudy配置PHP開發(fā)環(huán)境的步驟詳解
這篇文章主要介紹了VSCode+PHPstudy配置PHP開發(fā)環(huán)境,本文分步驟給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

