如何在Yii2的主要Activeform模型中处理新的关系模型记录?

时间:2019-05-11 18:32:18

标签: activerecord yii2 yii2-model

我在Yii中有两个模型...用户和语言...语言是用户可以说的语言。

我有一个更新视图来编辑所有用户人员,并且我想拥有一个唯一的表单来处理控制器中的POST。

控制器视图为:

public function actionUpdate($id)
{
    $model = $this->findModel($id);
    // in this model I can access $model->languages to get all the languages of the user

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('update', [
        'model' => $model,
    ]);
}

因此表单视图将是:

$form = ActiveForm::begin(['id' => 'form_cliente']);

echo "<h2>User data</h2>";
echo $form->field($model, 'name')->textInput();
echo $form->field($model, 'lastname')->textInput();
echo $form->field($model, 'city')->textInput();

echo "<h3>Languages</h3>";
foreach ($model->languages as $l) {
   echo $form->field($l, 'user.languages.language')->textInput();
   echo $form->field($l, 'user.languages.level')->textInput();
}

ActiveForm::end();

问题在于,由于我不知道如何访问相关的模型记录,因此“循环”无法正常工作。

而且,我只想处理一个ActiveForm:

  • 用户模型中的数据
  • 语言模型中的数据(语言记录的修改)
  • 插入新语言可能获得的新数据

0 个答案:

没有答案