【问题标题】:Laravel ORM bulk insertLaravel ORM 批量插入
【发布时间】:2019-10-24 01:22:37
【问题描述】:

我无法通过 Laravel ORM 使用 Model::create($mainArray) 方法在一个查询中插入多行

我尝试将多个数组放在一个主数组中,该数组希望通过一个查询插入数据库,而不是 foreach 和多个查询。

我的 $mainArray 如下所示:

    array:49 [▼
      0 => array:17 [▼
        "time" => "2019-06-09 07:00:00"
        "summary" => "Partly Cloudy"
        "icon" => "partly-cloudy-day"
        "precipIntensity" => 0
        "precipProbability" => 0
        "temperature" => 21.34
        "apparentTemperature" => 21.34
        "dewPoint" => 14.02
        "humidity" => 0.63
        "pressure" => 1024.32
        "windSpeed" => 2.72
        "windGust" => 7.77
        "windBearing" => 246
        "cloudCover" => 0.43
        "uvIndex" => 3
        "visibility" => 13.2
        "ozone" => 324.62
      ]
      1 => array:17 [▼
        "time" => "2019-06-09 08:00:00"
        "summary" => "Clear"
        "icon" => "clear-day"
        "precipIntensity" => 0
        "precipProbability" => 0
        "temperature" => 23.22
        "apparentTemperature" => 23.22
        "dewPoint" => 13.6
        "humidity" => 0.55
        "pressure" => 1024.09
        "windSpeed" => 0.87
        "windGust" => 7.69
        "windBearing" => 205
        "cloudCover" => 0.21
        "uvIndex" => 5
        "visibility" => 16.09
        "ozone" => 324
      ]

因此,当我尝试使用 Model::create() 方法在 foreach 中逐一插入时,这是可行的。但是当我尝试 Model::create($mainArray) 时,我收到了这个错误消息:

错误异常 (E_WARNING) preg_match() 期望参数 2 是字符串,给定数组

【问题讨论】:

    标签: php eloquent laravel-5.8


    【解决方案1】:

    更新:

    在相关模型中,您可以使用saveMany/createMany 方法进行多次插入。您可以使用接受属性数组的 insert() 方法。但是你需要手动更新 created_at 和 updated_at。

    Model::insert($mainArray);
    

    【讨论】:

    • 您好,感谢您的回复。这是相关模型的方法,但我的模型与任何其他模型都不相关。当我尝试 saveMany 或 createMany 时出现错误:调用未定义的方法 Model::saveMany()。
    【解决方案2】:

    如果不涉及模型,也许你可以使用这个,

    DB::table('tablename')->insert($mainArray);
    

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 2011-05-16
      • 2019-05-16
      • 2017-06-11
      • 2019-01-30
      相关资源
      最近更新 更多