O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Nota: Para fazer com que a variável $_POST['LoginForm'] nos retorne um vetor em<br />
vez de uma string, utilizamos uma convenção ao nomear os campos <strong>do</strong> formulário na<br />
visão. Para um campo correspondente ao atributo a de um modelo da classe C, seu<br />
nome será C[a]. Por exemplo, utilizamos LoginForm[username] para nomear o campo<br />
correspondente ao atributo username <strong>do</strong> modelo LoginForm.<br />
O trabalho restante agora é criar a visão login que deve conter um formulário HTML com<br />
os campos necessários.<br />
Crian<strong>do</strong> um Formulário<br />
Escrever a visão login é algo bem simples. Devemos começar com uma tag form, cujo<br />
atributo action deve ser a URL da ação login, descrita anteriormente. Em seguida<br />
inserimos os rótulos e os campos para os atributos declara<strong>do</strong>s na classe LoginForm. Por<br />
fim, inserimos um botão de envio (submit) que pode ser utiliza<strong>do</strong> pelos usuários para<br />
enviar o formulário. Tu<strong>do</strong> isso pode ser feito puramente com HTML.<br />
O <strong>Yii</strong> fornece algumas classes auxiliares para facilitar a composição da visão. Por<br />
exemplo, para criar um caixa de texto, podemos utilizar o méto<strong>do</strong> CHtml::textField(); para<br />
criar uma lista <strong>do</strong> tipo drop-<strong>do</strong>wn, utilizamos CHtml::dropDownList().<br />
Informação: Você deve estar se perguntan<strong>do</strong> qual a vantagem de se utilizar uma<br />
classe auxiliar, se elas utilizam a mesma quantidade de código <strong>do</strong> que o equivalente<br />
em HTML. A resposta é que as classes auxiliares geram mais <strong>do</strong> que somente código<br />
HTML. Por exemplo, o código a seguir gera uma caixa de texto que dispara o envio <strong>do</strong><br />
formulário caso seu valor seja altera<strong>do</strong> pelo usuário:<br />
CHtml::textField($name,$value,array('submit'=>''));<br />
Se não fosse assim, seria necessário um monte de código em JavaScript espalha<strong>do</strong>.<br />
No exemplo a seguir, utilizamos a classe CHtml para criar o formulário de login.<br />
Assumimos que a variável $model representa uma instância de LoginForm.