Scrierea view-ului login
este destul de directa. Pornim cu tagul form
al carui atribut action ar trebui sa fie URL-ul action-ului login
descris anterior.
Apoi inseram label-uri si campuri input pentru atributele declarate in clasa
LoginForm
. La sfarsit, inseram un buton submit care poate fi apasat de utilizator
pentru a trimite datele. Toate acestea pot fi facute in HTML simplu.
Yii pune la dispozitie unele clase ajutatoare (helper) pentru a facilita compunerea view-urilor. De exemplu, pentru a crea un camp input text, putem apela CHtml::textField(); pentru a crea o lista drop-down, apelam CHtml::dropDownList().
Info: Ar putea aparea intrebarea: 'Dar care este beneficiul folosirii helper-elor daca este nevoie de o cantitate similara de cod comparativ cu codul simplu HTML?'. Raspunsul este ca helper-ele pot pune la dispozitie mai multe lucruri decat cod HTML. De exemplu, urmatorul cod va genera un camp input text care va declansa submiterea formularului in cazul in care valoarea sa este schimbata de catre utilizator:
CHtml::textField($name,$value,array('submit'=>''));
Altfel, ar fi nevoie de scrierea de javascript peste tot.
Mai jos, folosim CHtml pentru a crea formularul de logare. Presupunem ca variabila
$user
reprezinta instanta LoginForm
.
<div class="yiiForm"> echo CHtml::form(); echo CHtml::errorSummary($user); <div class="simple"> echo CHtml::activeLabel($user,'username'); echo CHtml::activeTextField($user,'username'); </div> <div class="simple"> echo CHtml::activeLabel($user,'password'); echo CHtml::activePasswordField($user,'password'); </div> <div class="action"> echo CHtml::activeCheckBox($user,'rememberMe'); Remember me next time<br/> echo CHtml::submitButton('Login'); </div> </form> </div><!-- yiiForm -->
Codul de mai sus genereaza un formular mai dinamic. De exemplu,
CHtml::activeLabel() genereaza un label asociat cu atributul specificat al modelului.
Daca atributul are o eroare la intrare, clasa CSS a label-ului va fi error
, ceea ce va
schimba aspectul label-ului cu stiluri CSS corespunzatoare. In mod similar,
CHtml::activeTextField() genereaza un camp input text pentru atributul specificat al modelului
si ii schimba clasa CSS in cazul unei erori de intrare.
Daca folosim fisierul cu stiluri CSS form.css
pus la dispozitie de unealta yiic
, formularul
generat va arata in felul urmator:
Pagina login
Pagina login cu erori
Signup or Login in order to comment.