2

我正在使用Yii2PHP 框架并利用ActiveField(引导版本)生成表单字段,这利用了包含包装标签等的$template属性。

我想知道是否可以在使用模板的情况下在表单中生成单个字段,而所有其他字段都可以

我问是因为我希望它生成一个隐藏字段,我目前正在这样做:

<?= $form->field($model, 'some_id')->hiddenInput(['value' => $some_id])->label(false); ?>

这很好用,但是因为它将它包装在标准字段 html 中,所以margin-bottom我在类上设置的.form-group也被添加到这个中,并导致不需要的边距。

我知道我可以自己手动插入此字段,但它不会获得该字段的正确表单名称,例如MyForm[some_id].

4

2 回答 2

4

根据 Kiran Muralee 的回答提供的信息,我做了更多调查,发现您可以完全删除包装元素并输出实际input字段,这正是我想要的。

<?= $form->field($model, 'some_id', ['template' => '{input}',
'options' => ['tag' => false]])->hiddenInput(['value' => $some_id])->label(false); ?>

请注意在数组'tag' => false中添加的部分。options

注意:您必须使用 Yii>= 2.0.8才能正常工作,因为在此之前有一个错误,说明为:

Enh #10764 : 当 $tag 属性为 false 或 null (pana1990) 时,yii\helpers\Html::tag() 和 ::beginTag() 返回没有任何 HTML 的内容

于 2016-10-02T11:21:45.677 回答
1

试试这个

 <?= $form->field($model, 'some_id',
            ['template' => '{input}{error}',
             'options' => ['class' => 'your-class']]) ->
            hiddenInput(["value" => $someVal,
                         "class" => "your-class"
                ]) ?>

options 属性指定字段容器标记的 HTML 属性(名称-值对)。我认为这将解决您的问题,因为margin-bottom放在类上的值form-group不再影响。

于 2016-10-01T18:08:44.770 回答