Добавьте просто скрытое поле для передачи id_field, а в основное поле передавайте только данные:
<?php foreach ($fields as $field): ?>
<?= Html::activeHiddenInput($model, "[$field->id]id_field", ['value' => $field->id]) ?>
<?= $form->field($model, "[$field->id]data")->textInput(['value' => $model->data]) ?>
<?php endforeach; ?>
В результате вы получите примерно такую структуру post запроса:
Field_Data[1][id_field] = 1
Field_Data[1][data] = "значение поля 1"
Field_Data[2][id_field] = 2
Field_Data[2][data] = "значение поля 2"
А уже в контроллере обрабатывайте полученные поля как вам нужно:
if (Yii::$app->request->post('Field_Data')) {
foreach (Yii::$app->request->post('Field_Data') as $fieldData) {
$model = new FieldData();
$model->id_field = $fieldData['id_field'];
$model->data = $fieldData['data'];
if ($model->validate()) {
$model->save();
}
}
}