Наша взаимовыгодная связь https://banwar.org/
Написання форми не повинно викликати жодних труднощів. Ми починаємо з тега form, атрибут action якого повинен містити URL дії login, розглянутого раніше. Потім додаємо мітки і поля введення для атрибутів, оголошених в класі LoginForm. На завершення, ми вставляємо кнопку відправки даних форми. Все це без проблем пишеться на чистому HTML коді.
Для спрощення процесу створення форми Yii надає декілька класів-помічників (helpers). Наприклад, для створення текстового поля, можна викликати метод CHtml :: textField () , Для списку - CHtml :: dropDownList () .
Інформація: Безумовно, може виникнути справедливе запитання, а в чому перевага використання помічника, якщо обсяг написаного коду можна порівняти з чистим HTML кодом? Відповідь проста: використання помічника дає великі можливості. Наприклад, код, наведений нижче, створює текстове поле, що відправляє дані форми на сервер, коли користувач змінює її значення.
CHtml :: textField ($ name, $ value, array ( 'submit' => ''));
Зауважте, що все реалізовано без рядка JavaScript.
Нижче ми створюємо уявлення - форму авторизації - за допомогою класу CHtml . Тут змінна $ model - екземпляр класу LoginForm:
<Div class = "form"> echo CHtml :: beginForm (); echo CHtml :: errorSummary ($ model); <Div class = "row"> echo CHtml :: activeLabel ($ model, username); echo CHtml :: activeTextField ($ model, username); </ Div> <div class = "row"> echo CHtml :: activeLabel ($ model, password); echo CHtml :: activePasswordField ($ model, password); </ Div> <div class = "row rememberMe"> echo CHtml :: activeCheckBox ($ model, rememberMe); echo CHtml :: activeLabel ($ model, rememberMe); </ Div> <div class = "row submit"> echo CHtml :: submitButton (Ввійти); </ Div> echo CHtml :: endForm (); </ Div> <! - form ->
Форма, яку ми створили вище, має значно більший динамічністю. Наприклад, CHtml :: activeLabel () створює мітку, відповідну атрибуту моделі, і якщо при введенні даних була допущена помилка, то CSS клас мітки зміниться на error, змінивши зовнішній вигляд мітки відповідно до CSS стилями. Схожим чином метод CHtml :: activeTextField () створює текстове поле для відповідного атрибута моделі і графічно виділяє помилки введення.
Якщо використовувати файл CSS стилів form.css, створюваний скриптом yiic, то наша форма буде виглядати так:
сторінка авторизації
Сторінка авторизації з повідомленням про помилку
Починаючи з версії 1.1.1, для створення форм можна скористатися новим віджетом CActiveForm , Який дозволяє реалізувати валідацію як на клієнті, так і на сервері. При використанні CActiveForm код відображення буде виглядати наступним чином:
<Div class = "form"> $ form = $ this -> beginWidget (CActiveForm); echo $ form -> errorSummary ($ model); <Div class = "row"> echo $ form -> label ($ model, username); echo $ form -> textField ($ model, username) </ div> <div class = "row"> echo $ form -> label ($ model, password); echo $ form -> passwordField ($ model, password) </ div> <div class = "row rememberMe"> echo $ form -> checkBox ($ model, rememberMe); echo $ form -> label ($ model, rememberMe); </ Div> <div class = "row submit"> echo CHtml :: submitButton (Ввійти); </ Div> $ this -> endWidget (); </ Div> <! - form ->