我在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: