O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
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