yii2-dynamicform
yii2-dynamicform copied to clipboard
Invalid Configuration – yii\base\InvalidConfigException
I've got error Invalid Configuration – yii\base\InvalidConfigException. The 'model' property must be set and must extend from '\yii\base\Model'.
what should I do to fix this?
Try this..
if (isset($_POST['Questions'][0][0])) { foreach......... ......your code }
Hi, I am also facing the same error exactly correct.
Below is my actionUpdate()
public function actionUpdate($id)
{
$model = $this->findModel($id);
$modelsShortTerm=$model->shorttermgoals;
$modelsShortTermMissional = [];
$oldShortTermMissional = [];
if (!empty($modelsShortTerm)) {
foreach ($modelsShortTerm as $indexShortTerm => $modelShortTerm) {
$missional = $modelShortTerm->shorttermmissionalgoals;
$modelsShortTerm[$indexShortTerm] = $missional;
$oldShortTermMissional = ArrayHelper::merge(ArrayHelper::index($missional, 'ShortTermMissionalGoalId'), $oldShortTermMissional);
}
}
if ($model->load(Yii::$app->request->post())) {
$modelsShortTermMissional = [];
$oldIDs = ArrayHelper::map($modelsShortTerm, 'ShortTermGoalsId', 'ShortTermGoalsId');
$modelsShortTerm = Modelshortterm::createMultiple(Shorttermgoals::classname(), $modelsShortTerm);
Modelshortterm::loadMultiple($modelsShortTerm, Yii::$app->request->post());
$deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsShortTerm, 'ShortTermGoalsId', 'ShortTermGoalsId')));
$valid = $model->validate();
$valid = Modelshortterm::validateMultiple($modelsShortTerm) && $valid;
$missionalId = [];
if (isset($_POST['Shorttermmissionalgoals'][0][0])) {
foreach ($_POST['Shorttermmissionalgoals'] as $indexShortTerm => $missional) {
$missionalId = ArrayHelper::merge($missionalId, array_filter(ArrayHelper::getColumn($missional, 'ShortTermMissionalGoalId')));
foreach ($missional as $indexMissional => $missional1) {
$data['Shorttermmissionalgoals'] = $missional1;
$modelShortTermMissional = (isset($missional1['ShortTermMissionalGoalId']) && isset($oldShortTermMissional[$missional1['ShortTermMissionalGoalId']])) ? $oldShortTermMissional[$missional1['ShortTermMissionalGoalId']] : new Shorttermmissionalgoals;
$modelShortTermMissional->load($data);
$modelsShortTermMissional[$indexShortTerm][$indexMissional] = $modelShortTermMissional;
$valid = $modelShortTermMissional->validate();
}
}
}
$oldMissionalId = ArrayHelper::getColumn($oldShortTermMissional, 'ShortTermMissionalGoalId');
$deletedMissionalId = array_diff($oldMissionalId, $missionalId);
if ($valid) {
$transaction = \Yii::$app->db->beginTransaction();
try {
if ($flag = $model->save(false)) {
if (! empty($deletedMissionalId)) {
Shorttermmissionalgoals::deleteAll(['ShortTermMissionalGoalId' => $deletedMissionalId]);
}
if (!empty($deletedIDs)) {
Modelshortterm::deleteAll(['ShortTermGoalsId' => $deletedIDs]);
}
foreach ($modelsShortTerm as $indexShortTerm => $modelShortTerm) {
if ($flag === false) {
break;
}
$modelShortTerm->PastorId = $model->PastorId;
if (!($flag = $modelShortTerm->save(false))) {
break;
}
if (isset($modelsShortTermMissional[$indexShortTerm]) && is_array($modelsShortTermMissional[$indexShortTerm])) {
foreach ($modelsShortTermMissional[$indexShortTerm] as $indexMissional => $modelShortTermMissional) {
$modelShortTermMissional->ShortTermGoalsId = $modelShortTerm->ShortTermGoalsId;
if (!($flag = $modelShortTermMissional->save(false))) {
break;
}
}
}
}
}
if ($flag) {
$transaction->commit();
return $this->redirect(['view', 'id' => $model->PastorId]);
}
} catch (Exception $e) {
$transaction->rollBack();
}
}
//return $this->redirect(['view', 'id' => $model->GroupId]);
}else {
return $this->render('update', [
'model' => $model,
'modelsShortTerm' => (empty($modelsShortTerm)) ? [new Shorttermgoals] : $modelsShortTerm,
'modelsShortTermMissional' => (empty($modelsShortTermMissional)) ? [[new Shorttermmissionalgoals]] : $modelsShortTermMissional,
]);
}
}