2015-07-07 12:04:44 11573次浏览 6条回答 3 悬赏 5 金钱

我通过查询语句$attrData = ProductTypeAttr::find()->where(['type_id'=>3])->indexBy('id')->all();得到一个数组
然后我想讲述组中的数据插入到数据标用下面是代码

foreach ($attrData as $key=>$attr) {
    $attrModel->attr_id = $attr->id;
    $attrModel->attr_value = $attr->attr_value;
}

这样做只会在表中插入一条数据 这是为什么

  • 回答于 2015-07-07 14:36 举报
    foreach($datas as $key=>$data){
        $model = new Model();
        $model->username = $data->name;
        $model->password = $data->pass;
        $model->save();
    }
    
    觉得很赞
  • 回答于 2015-07-07 14:37 举报

    循环里面要实例化一个新的对象

  • 回答于 2015-07-10 17:34 举报

    楼上已经回答了

  • 回答于 2015-08-26 10:21 举报

    其实在foreach外new也可以,只要注意save以后把$model里的主键和unique索引字段清空,然后$model->setIsNewRecord(false)就行

    觉得很赞
  • 回答于 2019-04-18 17:29 举报

    也可以使用clone 克隆一个对象

  • 回答于 2019-04-18 17:29 举报

    foreach($datas as $key=>$data){

    $model = colne Model();
    $model->username = $data->name;
    $model->password = $data->pass;
    $model->save();
    

    }

您需要登录后才可以回答。登录 | 立即注册
awpp
主管

awpp

注册时间:2015-05-26
最后登录:2017-05-09
在线时长:28小时6分
  • 粉丝2
  • 金钱540
  • 威望10
  • 积分920

热门问题