Создание форм ============== Основной способ использования форм в Yii является использоваение [[yii\widgets\ActiveForm]]. Этот подход должен быть применён, когда форма основана на модели. Кроме того, имеются дополнительные методы в [[yii\helpers\Html]], которые используются для добавления кнопок и текстовых подсказок к любой форме. Форме, которая отображается на стороне клиента, в большинстве случаев соответствует [модели](structure-models.md). Модель в свою очередь проверяет данные из элементов формы на сервере (посмотрите раздел [Валидация](input-validation.md) для более подробных сведений). Когда создаётся форма, основанная на модели, необходимо определить, что же является моделью. Модель может основываться на классе [Active Record](db-active-record.md), который описывает некоторые данные из базы данных, или модель может основываться на базовом классе Model (происходит от [[yii\base\Model]]), который позволяет использовать произвольный набор элементов формы, например форма входа. В следующем примере показано, как создать модель формы, основанной на базовом классе Model: ```php 'login-form', 'options' => ['class' => 'form-horizontal'], ]) ?> field($model, 'username') ?> field($model, 'password')->passwordInput() ?>
'btn btn-primary']) ?>
``` В вышеизложенном коде, [[yii\widgets\ActiveForm::begin()|ActiveForm::begin()]] не только создаёт экземпляр формы, но также и знаменует её начало. Весь контент, расположенный между [[yii\widgets\ActiveForm::begin()|ActiveForm::begin()]] и [[yii\widgets\ActiveForm::end()|ActiveForm::end()]], будет завёрнут в HTML `
` тег. Вы можете настроить некоторые настройки виджета через передачу массива в его `begin` метод, также как и в любом другом виджете. В этом случае, дополнительный CSS класс и идентификатор ID будет прикреплён к открывающемуся тегу ``. Для просмотра всех доступных настроек, пожалуйста обратитесь к API документации [[yii\widgets\ActiveForm]]. Для создания в форме элемента с меткой и любой применимой Javascript валадиацией, вызывается [[yii\widgets\ActiveForm::field()|ActiveForm::field()]], который возвращает экземпляр [[yii\widgets\ActiveField]]. Когда этот метод вызывается непосредственно, то результатом будет текстовый элемент (`input type="text"`). Для того, чтобы настроить элемент, можно вызвать одни за одним дополнительные методы [[yii\widgets\ActiveField|ActiveField]]: ```php // элемент формы password field($model, 'password')->passwordInput() ?> // добавлена подсказка hint и настроена метка label field($model, 'username')->textInput()->hint('Пожалуйста, введите имя')->label('Имя') ?> // создание HTML5 email элемента field($model, 'email')->input('email') ?> ``` Впоследствии будет созданы `