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.

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.

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

Saved successfully!

Ooh no, something went wrong!