如何在yii2引导程序活动表单中保持多个字段和标签在一个表单组中



我正在处理yii2 bootstrap活动表单,我需要在一个表单组中保留多个输入。

 <div class="form-group field-phn required">
                     <label class="control-label" >Home Phone</label>
                     <select id="dialCode" class="form-control" name="AddPatientForm[home_dial_code]">
                        <option value="2">355,ALB</option>
                        <option value="3">213,DZA</option>
                        <option value="6">244,AGO</option>
                        <option value="224">971,ARE</option>
                     </select>
                     <input type="text" id="home_phn" class="form-control" name="AddPatientForm[home_phn]">
                     <p class="help-block help-block-error"></p>
                  </div>

我正在尝试的php代码是

<?php echo yiibootstrapHtml::activeLabel($objAddPatientFrm, 'home_phn') ?>
<?php echo $objActiveForm->field($objAddPatientFrm, 'home_dial_code', [ 'inputOptions' => [ 'id' => 'dialCode']])->dropDownList($dialCodeArray)->label(false); ?> 
<?php echo $objActiveForm->field($objAddPatientFrm, 'home_phn', [ 'inputOptions' => [ 'id' => 'home_phn']]); ?>

但是输出是

<label for="addpatientform-home_phn">Home Phn</label>                  <div class="form-group field-dialCode required">
<select id="dialCode" class="form-control" name="AddPatientForm[home_dial_code]">
<option value="2">355,ALB</option>
<option value="3">213,DZA</option>
<option value="6">244,AGO</option>
<option value="224">971,ARE</option>
</select>
<p class="help-block help-block-error"></p>
</div> 
                  <div class="form-group field-home_phn required">
<input type="text" id="home_phn" class="form-control" name="AddPatientForm[home_phn]">
<p class="help-block help-block-error"></p>
</div>

将输入和标签保存在单独的表单组中。

请建议我能做什么?

使用以下方式显示表单:

 
// With 'default' layout you would use 'template' to size a specific field:
echo $form->field($model, 'demo', [
    'template' => '{label} <div class="row"><div class="col-sm-4">{input}{error}{hint}</div></div>'
]);
// Input group
echo $form->field($model, 'demo', [
    'inputTemplate' => '<div class="input-group"><span class="input-group-addon">@</span>{input}</div>',
]);
希望它能有所帮助。。

我的解决方案是防止$form->field()呈现自己的form-group类。这是通过使用options属性并将options.class设置为空字符串(或包括form-group以外的任何类)来实现的。然后将字段封装在<div class="form-group">中。

这是代码:

<div class="form-group">
    <?= $form->field($Model, 'attribute1', ['options' => ['class' => '']]); ?>
    <?= $form->field($Model, 'attribute2', ['options' => ['class' => '']]); ?>
</div>

对于OP的示例:

<div class="form-group field-phn required">
    <?php echo yiibootstrapHtml::activeLabel($objAddPatientFrm, 'home_phn') ?>
    <?php echo $objActiveForm->field($objAddPatientFrm, 'home_dial_code', [ 'inputOptions' => [ 'id' => 'dialCode'], 'options' => ['class' => '']])->dropDownList($dialCodeArray)->label(false); ?> 
    <?php echo $objActiveForm->field($objAddPatientFrm, 'home_phn', [ 'inputOptions' => [ 'id' => 'home_phn'], 'options' => ['class' => '']]); ?>
</div>

最新更新