2016-11-04 61 views
0

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

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

<?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时,没有人创建对象(保存或在内存中),所以我不能做类似<?php echo $form->field($model->people[0], 'first_name')->textInput(); ?>的事情。

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

是否有可能使用ActiveForm做到这一点,或者只是不使用ActiveForm并在Yii中使用Html类创建输入,然后使用JS来更改人员索引?

回答

1

基本上我从你的文章中了解到,你需要在你的Yii2项目中使用动态表单。在你的情况下,表格应该包含组信息以及与之一起创建的多个人。在Yii2可以通过wbraganca/yii2-dynamicform形式widget.There的使用来实现这个功能是非常好的文档,如何使用小部件的例子scenario.The小部件文档可在

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

更多信息,并找到在

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

希望工作演示这有助于

+0

这绝对是我所想,但它看起来像有使我的错误无法使用,开发商没有在PR中解决问题https://github.com/wbraganca/yii2-dynamicform/pull/89 – kyle

+1

@ kyle好的让我看看 –