diff --git a/docs/guide-ru/input-forms.md b/docs/guide-ru/input-forms.md new file mode 100644 index 0000000000..b5d7fa4376 --- /dev/null +++ b/docs/guide-ru/input-forms.md @@ -0,0 +1,119 @@ +Создание форм +============== + +Основной способ использования форм в 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') ?> +``` + +Впоследствии будет созданы `