Odczytywanie tablicowych danych wejściowych
Czasami mamy potrzebę zbierania danych wejściowych użytkownika w trybie wsadowym. Inaczej mówiąc, użytkownik może wprowadzić informacje dla wielu instancji modelu oraz przesłać je wszystkie naraz. Nazywamy to tablicowymi danymi wejściowymi (ang. tabular input, ponieważ pola wejściowe są często prezentowane w tabeli HTML.
Aby pracować z tablicowymi danymi wejściowymi, musimy najpierw stworzyć lub też
wypełnić tablice modeli instancji, w zależności od tego czy wstawiamy dane
czy też aktualizujemy je. Otrzymujemy wtedy dane wejściowe użytkownika ze zmiennej
$_POST
oraz przypisujemy je do każdego modelu. Drobną różnicą pomiędzy w stosunku
do danych wejściowych jednego modelu jest to, że otrzymujemy dana przy użyciu
$_POST['ModelClass'][$i]
zamiast $_POST['ModelClass']
.
Mając gotową akcję, musimy popracować nad widokiem batchUpdate
aby wyświetlić
pola wejściowe za pomocą tabeli HTML.
Zauważ, że w powyższym przykładzie użyliśmy "[$i]name"
zamiast "name"
jako
drugi parametr podczas wywoływania metody CHtml::activeTextField.
Jeśli wystąpił tutaj jakikolwiek błąd sprawdzania danych, odpowiednie pole wejściowe zostanie podświetlone automatycznie, tak jak to było w przypadku pojedynczego modelu opisanego wcześniej.