不使用 Yii2 中的模板,用 ActiveField 生成单个表单域
Generate a single form field with ActiveField without using the template in Yii2
我正在使用 Yii2
PHP 框架并利用 ActiveField (Bootstrap Version) to generate form fields, this makes use of the $template 属性,其中包括包装标签等。
我想知道是否可以在不使用模板 的情况下以 形式生成单个字段,而所有其他字段 都可以 。
我问是因为我希望它生成一个隐藏字段,我目前正在这样做,例如:
<?= $form->field($model, 'some_id')->hiddenInput(['value' => $some_id])->label(false); ?>
这很好用,但是因为它将它包装在标准字段 html 中,我在 class 上设置的 margin-bottom
.form-group
也被添加到此并导致不需要的边距。
我知道我可以自己手动插入这个字段,但是它不会获得该字段的正确表单名称,例如 MyForm[some_id]
.
试试这个
<?= $form->field($model, 'some_id',
['template' => '{input}{error}',
'options' => ['class' => 'your-class']]) ->
hiddenInput(["value" => $someVal,
"class" => "your-class"
]) ?>
选项 属性 指定字段容器的 HTML 属性(名称-值对) tag.I 认为这会解决您的问题,因为 margin-bottom
value put在 class form-group
上不再有影响。
根据 Kiran Muralee 的 提供的信息,我做了更多调查,发现您可以 完全 删除包装元素,只输出实际的 input
字段,这就是我想要的。
<?= $form->field($model, 'some_id', ['template' => '{input}',
'options' => ['tag' => false]])->hiddenInput(['value' => $some_id])->label(false); ?>
注意在 options
数组 中添加了 'tag' => false
部分。
注意: 您必须使用 Yii >=
2.0.8
才能正常工作,因为在此之前有一个错误,说明为:
Enh #10764: yii\helpers\Html::tag() and ::beginTag() return content without any HTML when the $tag attribute is false or null (pana1990)
我正在使用 Yii2
PHP 框架并利用 ActiveField (Bootstrap Version) to generate form fields, this makes use of the $template 属性,其中包括包装标签等。
我想知道是否可以在不使用模板 的情况下以 形式生成单个字段,而所有其他字段 都可以 。
我问是因为我希望它生成一个隐藏字段,我目前正在这样做,例如:
<?= $form->field($model, 'some_id')->hiddenInput(['value' => $some_id])->label(false); ?>
这很好用,但是因为它将它包装在标准字段 html 中,我在 class 上设置的 margin-bottom
.form-group
也被添加到此并导致不需要的边距。
我知道我可以自己手动插入这个字段,但是它不会获得该字段的正确表单名称,例如 MyForm[some_id]
.
试试这个
<?= $form->field($model, 'some_id',
['template' => '{input}{error}',
'options' => ['class' => 'your-class']]) ->
hiddenInput(["value" => $someVal,
"class" => "your-class"
]) ?>
选项 属性 指定字段容器的 HTML 属性(名称-值对) tag.I 认为这会解决您的问题,因为 margin-bottom
value put在 class form-group
上不再有影响。
根据 Kiran Muralee 的 input
字段,这就是我想要的。
<?= $form->field($model, 'some_id', ['template' => '{input}',
'options' => ['tag' => false]])->hiddenInput(['value' => $some_id])->label(false); ?>
注意在 options
数组 中添加了 'tag' => false
部分。
注意: 您必须使用 Yii >=
2.0.8
才能正常工作,因为在此之前有一个错误,说明为:
Enh #10764: yii\helpers\Html::tag() and ::beginTag() return content without any HTML when the $tag attribute is false or null (pana1990)