在Laravel-4中批量插入具有关系的对象

 Cucci419_631 发布于 2023-02-11 10:47

我遇到了需要在laravel 4中使用相关对象批量保存对象的情况.基本上我正在做的是对象的批量插入,其中每个对象可以有许多标记(多对多关系).

以下是一些示例代码,请注意TODO的注释:

 [...]

 $batchData = array();
 $rowCount  = 0;
 foreach ($dataArray as $key => $row) {

        [...]

        // parsing row from CSV
        $obj = array();
        foreach ($row as $attribute => $value) {
            $obj['template_id'] = $templateId;
            $obj['batch_id']    = $batchId;
            $obj['user_id']     = $confideUserId;
            $obj['created_at']  = new \DateTime;
            $obj['updated_at']  = new \DateTime;
            // Attach Tags if any exist
            if ($attribute === 'tags') {
                if (!is_null($value) || !is_empty($value)) {
                    $tags = explode(":", $value);
                    // TODO: Get tag ID for each tag and add to $obj['tags'] array
                }
            }               
        }

        // add object to array
        $batchData[$rowCount] = $obj;
        ++$rowCount;

        if ($rowCount == \Config::get('app.maxCSV')) {
            try {
                // TODO: Batch Insert With Related tags??
                $obj_model_name::insert($batchData);
            } catch (Exception $e) {
                return false;
            }
            $rowCount  = 0;
            $batchData = array();

        }
    }

    [...]

我可以逐个插入每个对象的关系,但问题是我们通过CSV批量插入这些对象,我们可以在这里拥有数百到数十万个对象.

有人有任何提示吗?

仅供参考,正在使用的数据库是MSSQL 2012.

干杯,

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有