通过ActiveForm Yii2创建多个模型

时间:2016-11-04 21:01:52

标签: php yii yii2

我的Yii2项目中有一个表单,我需要允许使用它创建多个模型。总的来说,我有一个组和多个人ActiveRecords将使用表单创建,每个人员记录将属于该组。

例如,我有这个类的形式:

<?php namespace app\models\forms;

class GroupForm extends yii\base\Model {
    public $name;
    public $description;
    public $date;
    public $people = [];

    ....
}

在视觉上它将与此类似:

enter image description here

我希望能够使用加号和减号按钮向表单添加其他人。我有JS实际处理HTML克隆等,但我不知道如何创建第一个人。

我知道我需要这个名称是Person[0][first_name],但是当我实例化GroupForm时,还没有创建人物对象(已保存或在内存中),所以我不能做{{1 }}

表单提交后,我计划迭代POST数据中的所有'People'字段并将其加载到新的People对象中。

是否可以使用ActiveForm执行此操作,或者是不使用ActiveForm并使用Yii中的Html类创建输入然后使用JS更改人员索引的答案?

1 个答案:

答案 0 :(得分:1)

基本上我从你的帖子中了解到你需要在你的Yii2项目中使用动态表单。在您的情况下,表单应包含组信息以及要与其一起创建的多个人。在Yii2中,可以通过使用wbraganca/yii2-dynamicform表单小部件来实现此功能。有关如何将小部件与示例场景一起使用的非常好的文档。小部件文档可以在

找到。

https://github.com/wbraganca/yii2-dynamicform

的更多信息和工作演示

http://wbraganca.com/yii2extensions/dynamicform-demo1/create

希望这有帮助