Yii предоставляет различные методы для добавления сразу нескольких значений в базу данных. Ниже я расскажу о двух основных способах:
1. Использование метода batchInsert()
:
Метод batchInsert()
позволяет добавить несколько значений в базу данных за одну операцию. Он принимает два аргумента: название таблицы и массив значений, которые нужно добавить.
Пример использования batchInsert()
:
$data = [ ['John', 'Doe'], ['Jane', 'Smith'], ['Michael', 'Johnson'] ]; Yii::$app->db->createCommand() ->batchInsert('user', ['first_name', 'last_name'], $data) ->execute();
В данном примере мы добавляем три строки в таблицу "user", каждая строка состоит из двух значений: "first_name" и "last_name".
2. Использование метода createMultiple()
и saveMultiple()
:
createMultiple()
и saveMultiple()
- это методы, которые позволяют создать несколько моделей одновременно и сохранить их в базу данных. Они особенно полезны, если у вас уже есть модели, которые требуется добавить в базу данных.
Пример использования createMultiple()
и saveMultiple()
:
$data = [ ['first_name' => 'John', 'last_name' => 'Doe'], ['first_name' => 'Jane', 'last_name' => 'Smith'], ['first_name' => 'Michael', 'last_name' => 'Johnson'] ]; $models = []; foreach ($data as $item) { $model = new User(); $model->attributes = $item; $models[] = $model; } User::createMultiple($models); User::saveMultiple($models);
В данном примере мы создаем массив моделей "User" на основе данных из массива $data
, устанавливаем атрибуты каждой модели и сохраняем все модели одновременно в базу данных.
Оба способа позволяют добавлять сразу много значений в базу данных, и выбор зависит от конкретных требований вашего проекта.