/** * Автоматически добавляем комплектующие */ public function actionAutocomp() { $models = Devices::findAll(['type_id' => 1]); $arr = [373, 363, 262, 202, 146]; $valid = false; $i = 0; $v = 0; $n = 0; foreach ($models as $model) { if (in_array($model->id, $arr)) { continue; } $count_comp = Devices::find()->where(['parent_device_id' => $model->id])->count(); //echo $model->id . ' ' . $count_comp . '<br>'; if ($count_comp > 0) { continue; } //отсеяли лишние системники, создаем комплектующие $i++; $comp = new Devices(); $comp->type_id = 18; $comp->device_note = 'Блок питания'; $comp->workplace_id = 119; $comp->parent_device_id = $model->id; if ($comp->validate()) { $comp->save(); $valid = true; $v++; } $comp = new Devices(); $comp->type_id = 25; $comp->device_note = 'Материнская плата'; $comp->workplace_id = 119; $comp->parent_device_id = $model->id; if ($comp->validate()) { $v++; if ($comp->save()) { $net = new Netints(); //создаем сетевой интефейс со значениями по умолчанию $net->device_id = $comp->id; if ($net->validate()) { $n++; $net->save(); } } } $comp = new Devices(); $comp->type_id = 28; $comp->device_note = 'Процессор'; $comp->workplace_id = 119; $comp->parent_device_id = $model->id; if ($comp->validate()) { $comp->save(); $v++; } $comp = new Devices(); $comp->type_id = 29; $comp->device_note = 'DDR'; $comp->workplace_id = 119; $comp->parent_device_id = $model->id; if ($comp->validate()) { $comp->save(); $v++; } $comp = new Devices(); $comp->type_id = 30; $comp->device_note = 'SSD'; $comp->workplace_id = 119; $comp->parent_device_id = $model->id; if ($comp->validate()) { $comp->save(); $v++; } $comp = null; } if ($valid) { Yii::$app->session->setFlash('success', 'Обработка прошла успешно! Добавлено ' . $v . ' устройств. ' . $n . ' сетевых интерфейсов для ' . $i . 'устройств'); } return $this->redirect(['index']); }