Laravel ORM объемная вставка - PullRequest
0 голосов
/ 09 июня 2019

Я не могу вставить несколько строк с помощью 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
      ]

Так что, когда я пытаюсь вставить одну за одной строку в foreach с помощью метода Model :: create (),это работает.Но когда я пытаюсь Model :: create ($ mainArray), я получаю это сообщение об ошибке:

ErrorException (E_WARNING) preg_match () ожидает, что параметр 2 будет строкой, массивом будет дан

1 Ответ

0 голосов
/ 09 июня 2019

ОБНОВЛЕНИЕ:

В связанной модели вы можете использовать метод saveMany / createMany для множественной вставки.Вы можете использовать метод insert (), который принимает массив атрибутов.Но вам нужно обновить созданный_каталог и обновленный_кат вручную.

Model::insert($mainArray);
...