2017-02-09 4 views
2

У меня есть массив, но при сохранении записи только последняя запись сохраняетсяСохранение нескольких записей в yii2

Это мой код

 if (isset($arr["transporters"])) { 

      foreach ($arr["transporters"] as $other) { 
       $model->company_name = $other["transportername"]; 
       if($model->save()){ 
       $allsaved = true; 
       } 

      } 
      if($allsaved){ 
       return ['data' => "Successifully created"]; 
      }else{ 
       return ['data' => "Sorry an error occured when saving the transporters"]; 
      } 
     } 

По var_dump($arr)

возвращает

array(1) { 
["transporters"]=> 
array(2) { 
    [0]=> 
    array(1) { 
    ["transportername"]=> string(2) "news" //its not saved 
    } 
    [1]=> 
    array(1) { 
    ["transportername"]=> string(4) "event" //only this one gets saved 
    } 
} 
} 

Почему я не могу сохранить несколько записей

+0

В этом случае вам нужно создать новый экземпляр '$ model' в цикле каждый раз, когда вы хотите сохранить другую строку базы данных. – Bizley

+0

Я вижу, что сейчас работает –

ответ

2

Добавить надлежащую новую модель и popuplate правильно

if (isset($arr["transporters"])) { 

     foreach ($arr["transporters"] as $other) { 
      $model = new YourModel(); // add new model 
      $model->company_name = $other["transportername"]; 
      ..... 
      $model->others_column // remdeber to properly populated with all the value you needd 
      ....... 
      if($model->save()){ 
      $allsaved = true; 
      } 

     } 
     if($allsaved){ 
      return ['data' => "Successifully created"]; 
     }else{ 
      return ['data' => "Sorry an error occured when saving the transporters"]; 
     } 
    } 
Смежные вопросы