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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Validação de Da<strong>do</strong>s<br />

Ao inserir ou atualizar um registro, geralmente precisamos verificar ser o valor está de<br />

acor<strong>do</strong> com certas regras. Isso é especialmente importante nos casos em que os valores<br />

das colunas são informa<strong>do</strong>s pelos usuários. No geral, é bom nunca confiar em nenhum<br />

da<strong>do</strong> vin<strong>do</strong> <strong>do</strong> la<strong>do</strong> <strong>do</strong> cliente (usuário).<br />

O AR efetua a validação automaticamente quan<strong>do</strong> o méto<strong>do</strong> save() é executa<strong>do</strong>. A<br />

validação é baseada em regras especificadas pelo méto<strong>do</strong> rules() da classe AR. Para<br />

mais detalhes sobre como especificar regras de validação consulte Declaran<strong>do</strong> Regras de<br />

Validação. Abaixo temos o fluxo típico necessário para salvar um registro:<br />

if($post->save())<br />

{<br />

// da<strong>do</strong>s são vali<strong>do</strong>s e são inseri<strong>do</strong>s/atualiza<strong>do</strong>s no banco<br />

}<br />

else<br />

{<br />

// da<strong>do</strong>s são inváli<strong>do</strong>s. utilize getErrors() para recuperar as mensagens<br />

de erro<br />

}<br />

Quan<strong>do</strong> os da<strong>do</strong>s para inserção ou atualização são envia<strong>do</strong>s pelos usuários através de<br />

um formulário HTML, precisamos atribuí-los as propriedades correspondentes da classe<br />

AR. Podemos fazer isso da seguinte maneira:<br />

$post->title=$_POST['title'];<br />

$post->content=$_POST['content'];<br />

$post->save();<br />

Se existirem muitos campos, teríamos uma longa lista dessas atribuições. Esse trabalho<br />

pode ser alivia<strong>do</strong>, por meio da propriedade attributes, como feito no exemplo abaixo. Mais<br />

detalhes podem ser consulta<strong>do</strong>s em Atribuição de Atributos Seguros e Crian<strong>do</strong> uma Ação.<br />

// assumin<strong>do</strong> que $_POST['Post'] é um vetor com os valores das colunas,<br />

indexa<strong>do</strong>s pelos seus nomes<br />

$post->attributes=$_POST['Post'];<br />

$post->save();<br />

Comparan<strong>do</strong> Registros<br />

Assim como registros de uma tabela, as instâncias AR também são unicamente<br />

identificadas pelos valores de suas chaves primárias. Portanto, para comparar duas<br />

instâncias AR, precisamos apenas comparar os valores de suas chaves, assumin<strong>do</strong> que

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

Saved successfully!

Ooh no, something went wrong!