Ich habe ein Formular in meinem Yii2-Projekt und ich muss zulassen, dass mehrere Modelle erstellt werden. Insgesamt habe ich eine einzelne Gruppe und mehrere Person ActiveRecords, die mit dem Formular erstellt werden, und jeder Personendatensatz gehört zur Gruppe.Erstellen Sie mehrere Modelle über ActiveForm Yii2
Zum Beispiel habe ich diese Klasse, die die Form ist:
<?php namespace app\models\forms;
class GroupForm extends yii\base\Model {
public $name;
public $description;
public $date;
public $people = [];
....
}
Und visuell wird es etwas Ähnliches wie dieses:
Ich möchte das Plus verwenden, um der Lage sein, und Minus-Schaltflächen, um dem Formular zusätzliche Personen hinzuzufügen. Ich habe die JS an Ort und Stelle, um das HTML-Klonen und dergleichen zu handhaben, aber ich bin mir nicht sicher, wie man die erste Person erstellt.
Ich weiß, dass ich den Namen so etwas wie Person[0][first_name]
brauche, aber wenn ich die GroupForm instanziiere, gibt es keine Leute Objekte erstellt noch (gespeichert oder im Speicher), so kann ich etwas wie <?php echo $form->field($model->people[0], 'first_name')->textInput(); ?>
nicht tun.
Sobald das Formular eingereicht wurde, plante ich, dann über alle "People" -Felder in den POST-Daten zu iterieren und diese in neue People-Objekte zu laden.
Ist es möglich, dies mit dem ActiveForm zu tun oder ist die Antwort, einfach das ActiveForm nicht zu verwenden und die Eingaben mit der Html-Klasse in Yii zu erstellen und dann JS zu verwenden, um den Personenindex zu ändern?
Dies ist definitiv, was ich will, aber es sieht aus wie es ein Fehler ist, dass ich macht t unbrauchbarund der Entwickler zieht PRs nicht ein, um das Problem zu beheben https://github.com/wbraganca/yii2-dynamicform/pull/89 – kyle
@ kyle ok lass mich sehen –