我的问题是通过jquery动态创建表单。
用户应该能够动态生成输入,以便他可以一次将多行保存到相应的模型/表中。
现在我不知道如何为多个模型生成表单的name
属性。我想它应该是类似ModelName[Property][]
的东西(但我希望以“Yii方式”而不是硬编码名称)
为了更好地理解这一点,我在Yii Wiki中找到了类似的帖子。
using a single form to collect data for two or more models
如何为Yii2修改?这样用户就应该能够为所有(动态生成的)行填写数据并一次性提交。
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个,Reference
public function actionCreate()
{
$user = new User;
$profile = new Profile;
if ($user->load(Yii::$app->request->post()) && $profile->load(Yii::$app->request->post()) && Model::validateMultiple([$user, $profile])) {
$user->save(false); // skip validation as model is already validated
$profile->user_id = $user->id;
$profile->save(false);
return $this->redirect(['view', 'id' => $user->id]);
} else {
return $this->render('create', [
'user' => $user,
'profile' => $profile,
]);
}
}