public static function multiSave($model) { //\yii\helpers\VarDumper::dump(Yii::$app->request->post(),11,1); die(); $defaultAttributes = []; foreach ($model->getModels() as $key => $v) { foreach ($model->getModel($key)->attributes() as $attrKey) { if (empty($defaultAttributes[$attrKey])) { if (!empty($model->getModel($key)->{$attrKey})) { if ('[]' != $model->getModel($key)->{$attrKey}) { $defaultAttributes[$attrKey] = $model->getModel($key)->{$attrKey}; } } } } } unset($defaultAttributes['id']); unset($defaultAttributes['locale']); unset($defaultAttributes['locale_group_id']); //unset($defaultAttributes['slug']); $groupId = self::getLastLocaleGroupId() + 1; foreach ($model->getModels() as $key => $v) { if (!$model->getModel($key)->locale_group_id) { $model->getModel($key)->locale_group_id = $groupId; } foreach ($defaultAttributes as $key2 => $value2) { if (empty($model->getModel($key)->{$key2}) or "[]" == $model->getModel($key)->{$key2}) { $model->getModel($key)->{$key2} = $value2; } } //finance_id fix $modelGroupId = Finance::findOne(['id' => $model->getModel($key)->finance_id])->locale_group_id; $currentFinanceId = Finance::findOne(['locale_group_id' => $modelGroupId, 'locale' => $model->getModel($key)->locale])->id; $model->getModel($key)->finance_id = $currentFinanceId; //\yii\helpers\VarDumper::dump($model->getModel($key),11,1); } return $model->save(); }
/** * Finds the Finance model based on its primary key value. * If the finance is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Finance the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findFinance($id) { if (($finance = Finance::findOne($id)) !== null) { return $finance; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }