2016-11-04 59 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好的讓我看看 –