Yii2如何批量添加数据


Posted in PHP onMay 17, 2016

批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧。

在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据?

有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了!

话不多说,说多了你在骂我,我们步入正题,先看一个简单到小学生都认识的表结构

//test 
id 
name

我们现在就是要在yii2中对这张数据表批量插入10条数据

我们想要的方式肯定是下面这样的,一条sql多么干脆直接了事

insert into test (name) values ('zhangsan'), ('lisi');

分析都分析完了,好吧,赶紧看看具体实现

//假如 $names = ['zhangsan', 'lisi']; 
$data = []; 
foreach ($names $k => $v) { 
$data[] = [$v]; 
} 
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();

我相信很多人都是冲着AR能不能实现批量插入来的,理由无非就是更安全更方便操作呗。但是官方手册貌似没有,没有,没有。。。心都碎了,竟然没有,至少我没有找到,你找到了请点击原文找到我并联系我,我也si分的需要方法啊。

不过不巧的是,我找到一个跟AR相关联的操作方法,我们共同分享参考一下看看具体怎么回事

假设有一个Post类的数组 $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(); 
//当然啦,上面给出的是插入所有的字段,但事实往往事与愿违,也简单,稍作调整即可 
$rows[] = [ 
'title' => $model->title, 
'content' => $model->content, 
]; 
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();

虽然又回到了batchInsert上,不过没关系,该验证的都验证了,安全是无须担心的。

以上所述是小编给大家介绍的Yii2如何批量添加数据的相关知识,希望对大家有所帮助!

PHP 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
php学习之运算符相关概念
Jun 09 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
php使用curl存储cookie的示例
Mar 31 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php日期操作技巧小结
Jun 25 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php可变长参数处理函数详解
Feb 22 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 PHP
php去除deprecated的实例方法
Nov 17 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 #PHP
php截取视频指定帧为图片
May 16 #PHP
PHP中常用的数组操作方法笔记整理
May 16 #PHP
PHP获取用户访问IP地址的5种方法
May 16 #PHP
php pdo oracle中文乱码的快速解决方法
May 16 #PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 #PHP
Yii2 assets清除缓存的方法
May 16 #PHP
You might like
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
详解JS模块导入导出
2017/12/20 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
Python with的用法
2014/08/22 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python with标签使用方法解析
2020/01/17 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
一套软件测试笔试题
2014/07/25 面试题
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
写求职信有什么意义
2014/02/17 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
教务处干事工作总结
2015/08/14 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis