O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
modelos e os envia to<strong>do</strong>s de uma só vez. Chamamos isso de Entrada Tabular, porque<br />
seus campos normalmente são apresenta<strong>do</strong>s em uma tabela HTML.<br />
Para trabalhar com entradas tabulares, devemos primeiro criar e preencher um vetor de<br />
instâncias de modelos, dependen<strong>do</strong> se estamos inserin<strong>do</strong> ou atualizan<strong>do</strong> os da<strong>do</strong>s.<br />
Podemos então recuperar as entradas <strong>do</strong> usuário a partir da variável $_POST e atribui-las<br />
para cada modelo. Dessa forma, existe uma pequena diferença de quan<strong>do</strong> utilizamos um<br />
único modelo para entrada; devemos recuperar os da<strong>do</strong>s utilizan<strong>do</strong>$_POST<br />
['ClasseDoModelo'][$i] em vez de $_POST['ClasseDoModelo'].<br />
public function actionBatchUpdate()<br />
{<br />
// recupera os itens para atualização em lote<br />
// assumin<strong>do</strong> que cada item é instância de um Item<br />
$items=$this->getItemsToUpdate();<br />
if(isset($_POST['Item']))<br />
{<br />
$valid=true;<br />
foreach($items as $i=>$item)<br />
{<br />
if(isset($_POST['Item'][$i]))<br />
$item->attributes=$_POST['Item'][$i];<br />
$valid=$valid && $item->validate();<br />
}<br />
if($valid) // to<strong>do</strong>s os itens são vali<strong>do</strong>s<br />
// ...faça algo aqui<br />
}<br />
// exibe a visão para coletar as entradas tabulares<br />
$this->render('batchUpdate',array('items'=>$items));<br />
}<br />
Com a ação pronta, precisamos criar a visão batchUpdate para exibir os campos em um<br />
tabela HTML: