Проблема связана с вашей l oop, если мы действительно остановимся и посмотрим, что происходит, это будет иметь гораздо больший смысл:
foreach ($arr as $province) {
$confirmedByStates = new ConfirmedByProvinces();
foreach ($province as $key => $value) {
if($key == 'ON') {
$confirmedByProvinces->ontario = $value;
}
if($key == 'QB') {
$confirmedByProvinces->quebec = $value;
}
$confirmedByProvinces->save();
}
};
Для каждой итерации вы обновляете новую модель с именем ConfirmedByProvinces
:
foreach ($arr as $province) {
$confirmedByStates = new ConfirmedByProvinces();
//...
В конце каждой итерации вы затем вызываете save()
:
foreach ($arr as $province) {
//...
$confirmedByProvinces->save();
Как вы теперь можете видеть, каждая итерация внешнего l oop создаст новый экземпляр вашей ConfirmedByProvinces
модели, а затем сохранит его во внутренней l oop, в результате чего будет получено несколько строк для столько записей, сколько имеется в вашем массиве.
@ ответ DilipHirapara решит вашу проблему, но я подумал, что более подробное объяснение прояснит, почему это было проблемой с самого начала.