Coletando Entradas Tabulares
As vezes queremos coletar entradas de usuário em modo batch (em lote, vários ao mesmo tempo). Isso é, o usuário entra com informações para diversas instâncias de modelos e os envia todos de uma só vez. Chamamos isso de Entrada Tabular, porque seus campos normalmente são apresentados em uma tabela HTML.
Para trabalhar com entradas tabulares, devemos primeiro criar e preencher um vetor
de instâncias de modelos, dependendo se estamos inserindo ou atualizando os dados.
Podemos então recuperar as entradas do usuário a partir da variável $_POST e
atribui-las para cada modelo. Dessa forma, existe uma pequena diferença de quando
utilizamos um único modelo para entrada; devemos recuperar os dados utilizando
$_POST['ClasseDoModelo'][$i] em vez de $_POST['ClasseDoModelo'].
Com a ação pronta, precisamos criar a visão batchUpdate para exibir os campos
em um tabela HTML:
Note no código acima que utilizamos "[$i]name" em vez de "name" no segundo
parâmetro ao chamar o método CHtml::activeTextField.
Se ocorrer algum erro de validação, os campos correspondentes serão identificados automaticamente, da mesma forma como ocorre quando utilizamos um único modelo.