我的Yii2项目中有一个表单,我需要允许使用它创建多个模型。总的来说,我有一个组和多个人ActiveRecords将使用表单创建,每个人员记录将属于该组。
例如,我有这个类的形式:
<?php namespace app\models\forms;
class GroupForm extends yii\base\Model {
public $name;
public $description;
public $date;
public $people = [];
....
}
在视觉上它将与此类似:
我希望能够使用加号和减号按钮向表单添加其他人。我有JS实际处理HTML克隆等,但我不知道如何创建第一个人。
我知道我需要这个名称是Person[0][first_name]
,但是当我实例化GroupForm时,还没有创建人物对象(已保存或在内存中),所以我不能做{{1 }}
表单提交后,我计划迭代POST数据中的所有'People'字段并将其加载到新的People对象中。
是否可以使用ActiveForm执行此操作,或者是不使用ActiveForm并使用Yii中的Html类创建输入然后使用JS更改人员索引的答案?
答案 0 :(得分:1)
基本上我从你的帖子中了解到你需要在你的Yii2项目中使用动态表单。在您的情况下,表单应包含组信息以及要与其一起创建的多个人。在Yii2中,可以通过使用wbraganca/yii2-dynamicform
表单小部件来实现此功能。有关如何将小部件与示例场景一起使用的非常好的文档。小部件文档可以在
https://github.com/wbraganca/yii2-dynamicform
的更多信息和工作演示
http://wbraganca.com/yii2extensions/dynamicform-demo1/create
希望这有帮助