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.

• match: alias para CRegularExpressionValidator, garante que o da<strong>do</strong> informa<strong>do</strong> casa<br />

com um expressão regular.<br />

• numerical: alias para CNumberValidator, garante que o da<strong>do</strong> informa<strong>do</strong> é um número<br />

váli<strong>do</strong>.<br />

• required: alias para CRequiredValidator, garante que o valor <strong>do</strong> atributo não está<br />

vazio.<br />

• type: alias para CTypeValidator, garante que o atributo é de um tipo específico.<br />

• unique: alias para CUniqueValidator, garante que o da<strong>do</strong> informa<strong>do</strong> é único na<br />

coluna da tabela <strong>do</strong> banco de da<strong>do</strong>s informada.<br />

• url: alias para CUrlValidator, garante que o da<strong>do</strong> informa<strong>do</strong> é uma URL válida.<br />

Abaixo listamos alguns exemplos da utilização de valida<strong>do</strong>res predefini<strong>do</strong>s:<br />

// username é obrigatório<br />

array('username', 'required'),<br />

// username deve ter entre 3 e 12 caracteres<br />

array('username', 'length', 'min'=>3, 'max'=>12),<br />

// quan<strong>do</strong> estiver no cenário register, password deve ser igual password2<br />

array('password', 'compare', 'compareAttribute'=>'password2',<br />

'on'=>'register'),<br />

// quan<strong>do</strong> estiver no cenário login, password deve ser autentica<strong>do</strong><br />

array('password', 'authenticate', 'on'=>'login'),<br />

Atribuição Segura de Atributos<br />

Nota: a atribuição de atributos baseada em cenários está disponível desde a versão<br />

1.0.2 <strong>do</strong> framework.<br />

Normalmente, depois que uma instância de um modelo é criada, precisamos popular seus<br />

atributos com as informações enviadas pelo usuário. Isso pode ser feito de uma maneira<br />

conveniente, utilizan<strong>do</strong> a atribuição em massa, como pode ser visto no código abaixo:<br />

$model=new LoginForm;<br />

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

if(isset($_POST['LoginForm']))<br />

$model->attributes=$_POST['LoginForm'];<br />

Nota: A propriedade scenario está disponível desde a versão 1.0.4. A atribuição em<br />

massa irá utilizar o valor dessa propriedade para determinar quais atributos podem ser<br />

atribuí<strong>do</strong>s dessa maneira. Nas versões 1.0.2 e 1.0.3, para fazer a atribuição em massa<br />

em um cenário específico, deveríamos proceder da seguinte maneira:<br />

$model->setAttributes($_POST['LoginForm'], 'login');

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

Saved successfully!

Ooh no, something went wrong!