用法
<?php $form = ActiveForm::begin(['id' => 'form-signup']); ?> //文本框的标题 <?= $form->field($model, 'test1')->label('文本框的标题') ?> //文本框下方的提示 <?= $form->field($model, 'test2')->hint('测试hint'); ?> //input(type) type的类型有 text password等 <?= $form->field($model, 'test3')->input('text')?> //简单文本框 <?= $form->field($model, 'test3')->textInput(['maxlength' => true])?> //隐藏文本框 <?= $form->field($model, 'test3')->hiddenInput() ?> //密码文本框,应用于登录的密码输入框 <?= $form->field($model, 'test3')->passwordInput() ?> //文本域 应用于输入内容较多比如文章简介等 rows=>3 表示文本域高为3 <?= $form->field($model, 'test3')->textarea(['rows'=>'3']) ?> //文件上传 <?= $form->field($model, 'test3')->fileInput() ?> //勾选框 <?= $form->field($model, 'test3')->radio() ?> //多选框 <?= $form->field($model, 'test3')->checkbox() ?> //listbox <?= $form->field($model, 'test3')->listBox(['0'=>'box1','1'=>'box2']) ?> //多谢框列表,常用 <?= $form->field($model, 'test3')->checkboxList(['0'=>'box1','1'=>'box2']) ?> //单选框列表,常用 <?= $form->field($model, 'test3')->radioList(['0'=>'radio1','1'=>'radio2'])?> //下拉框列表 <?= $form->field($model, 'test3')->dropDownList( ['1'=>'下拉选项1','2'=>'下拉选项2'], ['prompt' => '请选择'] ) ?> //插件组件应用,比如yii2编辑器插件,图片上传插件 <?= $form->field($model,'test3')->widget(yii\captcha\Captcha::className())?> <div class="form-group"> <?= Html::submitButton('按钮', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> </div> <?php ActiveForm::end(); ?>
上面基本涵盖了activeform的所有文本框的例子,但是如果我们需要对表单的结构做自定义的调整,以适用每个不同项目的需求,那是不是就没法用activeform了?请看下面自定义表单结构
自定义表单结构
use yii\bootstrap\ActiveForm; $form = ActiveForm::begin(['layout' => 'horizontal']); // 隐藏form的标签 echo $form->field($model, 'demo', [ 'inputOptions' => [ 'placeholder' => $model->getAttributeLabel('demo'), ], ])->label(false); // 内联 radio list echo $form->field($model, 'demo')->inline()->radioList($items); //水平模式控制文本框的大小 echo $form->field($model, 'demo', [ 'horizontalCssClasses' => [ 'wrapper' => 'col-sm-2', ] ]); // 除了'default(默认)' 布局 你还可以用 'template' 制定特定的布局: echo $form->field($model, 'demo', [ 'template' => '{label} <div class="row"><div class="col-sm-4">{input}{error}{hint}</div></div>' ]); // 自定义输入框的结构 echo $form->field($model, 'demo', [ 'inputTemplate' => '<div class="input-group"><span class="input-group-addon">@</span>{input}</div>', ]); ActiveForm::end();
详细参数
[[\yii\widgets\ActiveField]]. 加强版的Bootstrap 3
1.这个类添加了一些有用的功能到 [[\yii\widgets\ActiveField|ActiveField]] 在不同的形式布局中提供各种bootstrap3的表单域:
- [[inputTemplate]] 是一个用来呈现复杂输入的可选模板,例如输入组
- [[horizontalCssClasses]] 以横向形式定义了css网络格以增加标签,包装和错误提示
- [[inline]]/[[inline()]] 被用于提供内联的[[checkboxList()]] 和[[radioList()]]
- [[enableError]] 被设置为‘false’以禁用错误
- [[enableLabel]] 被设置为`false` 以禁用标签
- [[label()]] 和boolean值一起使用,来启用和禁用标签
2.也有一些新的占位符,你可以用在 [[template]] 结构中:
- `{beginLabel}`: 开始标签
- `{labelTitle}`: 标签的标题,和 `{beginLabel}`/`{endLabel}`一起使用
- `{endLabel}`: 结束标签
- `{beginWrapper}`: 开始包装标签
- `{endWrapper}`: 关闭包装标签
3.包装标签仅用于某些布局和表单元素.
请注意,某些元素使用了 [[template]]的轻微不同的默认值和其他选项.
你可以重写这些预定义模板复选框, radio buttons, checkboxLists和 radioLists 在 [[\yii\widgets\ActiveForm::fieldConfig|fieldConfig]] 的
[[\yii\widgets\ActiveForm]]:
- [[checkboxTemplate]] 在默认布局复选框模板
- [[radioTemplate]] 默认布局中的radio button模板
- [[horizontalCheckboxTemplate]] 水平布局的 checkboxes模块
- [[horizontalRadioTemplate]] 水平布局的 radio buttons 模块
- [[inlineCheckboxListTemplate]] 内联的 checkboxLists模块
- [[inlineRadioListTemplate]] 内联的 radioLists模块
文章来自yii中文网