Вставка нескольких данных в базу данных в Yii 2

У меня проблема с моим кодом, когда я пытаюсь сохранить несколько данных в базе данных одновременно, это мой код для сохранения в базе данных:

foreach ($data as $value) { $model->route = $value[0][1]; $model->begin_point = $value[0][2]; $model->begin_point = $value[0][3]; $model->save(); } return $this->redirect('index'); 

каждый, что я пытаюсь сохранить, я получаю только последний массив данных, который можно сохранить в базе данных. может кто-нибудь мне помочь? или если кто-то может предоставить учебник, это будет реальной помощью.

  1. Создайте массив, перебирая несколько значений.

     $data- has multiple values $bulkInsertArray = array(); foreach($data as $value){ $bulkInsertArray[]=[ 'columnName1'=>$value[0][1], 'columnName2'=>$value[0][2], 'columnName3'=>$value[0][3] ]; } 
  2. Проверить $ bulkInsertArray не пустым

     if(count($bulkInsertArray)>0){ $columnNameArray=['columnName1','columnName2','columnName3']; // below line insert all your record and return number of rows inserted $insertCount = Yii::$app->db->createCommand() ->batchInsert( $tableName, $columnNameArray, $bulkInsertArray ) ->execute(); } 

Надеюсь, что этот код поможет.

Вы должны каждый раз создавать новый объект модели. Или Else youre Просто переписывание.

  1. Для этого вы можете использовать Yii command builder.
 $command = Yii::app()->db->createCommand(); $command->insert('table_name',array('column_1'=>$value_1), 'column_2'=>$value_2)); 

и так далее.

  1. Напишите этот код в цикле, и он будет вставлять все записи один за другим.