Как добавить сразу много значений?

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, устанавливаем атрибуты каждой модели и сохраняем все модели одновременно в базу данных.

Оба способа позволяют добавлять сразу много значений в базу данных, и выбор зависит от конкретных требований вашего проекта.