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 相关文章推荐
php 字符转义 注意事项
May 27 PHP
关于svn冲突的解决方法
Jun 21 PHP
PHP中soap的用法实例
Oct 24 PHP
php实现递归与无限分类的方法
Feb 16 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
PHP的反射机制实例详解
Mar 29 PHP
php实现微信发红包功能
Jul 13 PHP
零基础php编程好学吗
Oct 11 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 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
php4的session功能评述(一)
2006/10/09 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
php自定文件保存session的方法
2014/12/10 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
Python简易版图书管理系统
2019/08/12 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
2014年大学生党员自我评议
2014/09/22 职场文书
研究生简历自我评
2015/03/11 职场文书