yii2 的ActiveForm对应没每个项
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
生成html默认为
<div class="form-group field-user-username required has-error">
<label class="control-label" for="user-username">用户名</label>
<input type="text" id="user-username" class="form-control" name="User[username]" maxlength="100" aria-required="true" aria-invalid="true">
<div class="help-block"></div>
</div>
假设我们预计想设置成
<div class="a">
<label class="b">用户名:</label>
<div class="controls">
<input class="c" name="User[username]" id="user-username" type="text" value="">
</div>
<div class="help-block"></div>
</div>
对比可以看到,我需要修改最外层div的class,label的class,input外部加一个div并且修改了样式
ActiveForm::begin([
'fieldConfig' => [ //统一修改字段的模板
'template' => "{label}\n<div class=\"controls\">{input}</div>\n {error} ",//修改显示内容默认为{label}\n{input}\n{hint}\n{error} \n是html代码显示时的换行
'options'=>['class'=>'a'],//改变class类
'labelOptions'=>['class' => 'b'],
'inputOptions'=>['class' => 'c'],
] ]);
对应option可以还设置其他属性,如id,name,data-* 之类的属性