Как в миграции перебрать все строки в таблице?

В Yii фреймворке для перебора всех строк в таблице в рамках миграции можно использовать класс yiidbQuery. Подобный код может быть использован, например, для выполнения дополнительных операций над каждой строкой в таблице при ее изменении.

Чтобы перебрать все строки в таблице, можно сначала получить экземпляр объекта yiidbQuery, указав имя таблицы, над которой необходимо произвести итерацию:

$query = new yiidbQuery;
$query->from('имя_таблицы');

После этого можно выполнить запрос к базе данных и получить все строки таблицы:

$rows = $query->all();

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

При необходимости вы можете использовать цикл foreach, чтобы перебрать все строки таблицы:

foreach ($rows as $row) {
    // Ваш код обработки каждой строки таблицы
}

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

Например, для обновления значения определенного столбца в каждой строке таблицы, вы можете использовать метод update() модели ActiveRecord:

foreach ($rows as $row) {
    $model = YourModel::findOne($row['id']);
    $model->column_name = 'новое_значение';
    $model->update();
}

Где YourModel - это имя вашей модели ActiveRecord, а 'column_name' - это имя столбца, который нужно обновить.

Наконец, после выполнения всех необходимых операций в цикле, вы можете сохранить изменения, если это требуется, вызвав метод save() на каждой модели:

foreach ($rows as $row) {
    $model = YourModel::findOne($row['id']);
    $model->column_name = 'новое_значение';
    $model->save();
}

Это позволит сохранить изменения в базе данных.