如何用model插入二条数据? [ 2.0 版本 ]
如题:如何用model插入二条数据?  我发现如果不new 二次model 是做不到的。这是orm的特性?
今天项目中,$this->save() 在一次操作中调用了四次。但发现不管如何,都只有一条入库。
最佳答案
- 
                                                 第一种方法 php $model = new User(); foreach($data as $attributes) { $_model = clone $model; $_model->setAttributes($attributes); $_model->save(); }第二种方法 php $model = new User(); foreach($data as $attributes) { $model->isNewRecord = true; $model->setAttributes($attributes); $model->save() && $model->id=0; }共 1 条回复
其他 3 个回答
- 
 KillMeAgain 回答于 2017-01-06 21:36 举报 KillMeAgain 回答于 2017-01-06 21:36 举报这是orm的特性 
- 
 同意楼上,也可以两条数据拼成一条sql语句,然后执行 
 类似于如下:foreach($res[0] as $value){ $row = explode('|', $value); if($row[0] != '' && isset($row[1])){ $values .= '("'.trim($row['0']).'","'.trim($row['1']).'"),'; } } $sql = "insert into tbl_index(title,link) values".substr($values,0,-1).';';共 5 条回复  @474352380 ,贴出来代码看看   public function getAdd() { $this->a(); $this->b(); $this->c(); $this->d(); }简单的来说,每一个方法,都是一个插入操作。$this->sve();但是只有d()能入库。 以下是我解决方法: 
 注:因为我在入库前,做了时间判断,所以好使。for ($i = 0; $i <= 3; $i++) { $model->add; }代码意义不大。   @474352380 我认为你这里可以分别dump一下四个$this   @jackiegao 就是四个一样的object 有问题? 
- 
 建议批量插入好点,如: //假如 $names = ['zhangsan', 'lisi']; $data = []; foreach ($names $k => $v) { $data[] = [$v]; } Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();qqa4560354 觉得很赞
最爱红烧肉
            注册时间:2014-11-07
最后登录:2017-10-27
在线时长:69小时2分
    最后登录:2017-10-27
在线时长:69小时2分
- 粉丝11
- 金钱4740
- 威望30
- 积分5730