Erfassen tabellarischer Eingaben
Manchmal muss man eine ganze Reihe gleichartiger Eingabewerten erfasst werden. Der Anwender kann also die Daten für mehrere Modelinstanzen auf einmal eingeben und absenden. Dies nennt man tabellarische Eingabe, weil die Eingabefelder in diesem Fall oft in einer Tabelle dargestellt werden.
Für solche tabellarische Eingaben muss zunächst ein Array mit Modelobjekten
erstellt bzw. befüllt werden, je nachdem ob die Daten eingefügt oder
aktualisiert werden sollen. Die gesendeten Formulardaten werden dann
nacheinander aus $_POST
gelesen und in den jeweiligen Modelinstanzen
zugewiesen. Im Gegensatz zum vorher beschriebenen Verfahren bei einem einzelnen Model
werden die Daten hier jeweils aus $_POST['ModelClass'][$i]
statt
$_POST['ModelClass']
gelesen.
Ist die Action entsprechend erstellt, müssen im View batchUpdate
die Eingabefelder in einer HTML-Tabelle angezeigt werden.
Beachten Sie, dass beim Aufruf von CHtml::activeTextField "[$i]name"
statt "name"
verwendet wird.
Genau wie beim View für einfache Models werden auch hier die fehlerhaften Eingabefelder automatisch hervorgehoben.