20.11.2014 Views

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!