如何在Yii2中使用单个表单收集两个或更多模型的数据?

时间:2016-04-27 15:45:57

标签: yii yii2

我的问题是通过jquery动态创建表单。  用户应该能够动态生成输入,以便他可以一次将多行保存到相应的模型/表中。 现在我不知道如何为多个模型生成表单的name属性。我想它应该是类似ModelName[Property][]的东西(但我希望以“Yii方式”而不是硬编码名称)

为了更好地理解这一点,我在Yii Wiki中找到了类似的帖子。

using a single form to collect data for two or more models

如何为Yii2修改?这样用户就应该能够为所有(动态生成的)行填写数据并一次性提交。

2 个答案:

答案 0 :(得分:0)

多个模型的表格形式的

Tutorial

答案 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,
        ]);
    }
}