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.

Se os cenários não são importantes para o modelo, ou se to<strong>do</strong>s os cenários tem o mesmo<br />

conjunto de atributos, o valor de retorno pode ser simplifica<strong>do</strong> para um simples string:<br />

attr1, attr2, ...'<br />

Para da<strong>do</strong>s não seguros, devemos atribui-los individualmente aos atributos, como no<br />

exemplo a seguir:<br />

$model->permission='admin';<br />

$model->id=1;<br />

Disparan<strong>do</strong> a Validação<br />

Uma vez que o modelo tenha si<strong>do</strong> popula<strong>do</strong> com os da<strong>do</strong>s envia<strong>do</strong>s pelo usuário,<br />

podemos executar o méto<strong>do</strong> CModel::validate() para disparar o processo de validação.<br />

Esse méto<strong>do</strong> retorna uma valor indican<strong>do</strong> se a validação ocorreu com sucesso ou não.<br />

Para modelos utilizan<strong>do</strong> CActiveRecord, a validação pode ser disparada automaticamente<br />

quan<strong>do</strong> o méto<strong>do</strong> CActiveRecord::save() é executa<strong>do</strong>.<br />

Quan<strong>do</strong> chamamos CModel::validate(), podemos especificar um parâmetro com o nome<br />

de um cenário. Assim, somente as regras desse cenário serão aplicadas na validação.<br />

Uma regra é aplicada a um cenário, se não existir a opção on nela, ou, caso exista, seu<br />

valor corresponda ao cenário especifica<strong>do</strong>.<br />

Por exemplo, executamos o código a seguir para executar a validação ao registrar um<br />

usuário:<br />

$model->scenario='register';<br />

$model->validate();<br />

Nota: A propriedade scenario está disponível a partir da versão 1.0.4. O méto<strong>do</strong> de<br />

validação irá utilizar essa propriedade para determinar quais regras irá utilizar. Nas<br />

versões 1.0.2 e 1.0.3, devemos informar o cenário da seguinte maneira:<br />

$model->validate('register');<br />

Devemos declarar as regras de validação na classe <strong>do</strong> modelo de formulário da seguinte<br />

maneira:

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

Saved successfully!

Ooh no, something went wrong!