我知道您可以在窗格中拆分表单并选择不为特定字段呈现标签,但我不禁认为您必须能够从表单类中执行此操作。 options数组中的'label'键允许您将此值更改为您喜欢的任何值,但传递false或空字符串只会返回字段名称(请参阅下面的示例,其中'roles'将作为标签呈现)。
$builder
->add('roles', 'entity', array(
'class' => 'Acme\UserBundle\Entity\Role',
'label' => ''
));
$builder
->add('roles', 'entity', array(
'class' => 'Acme\UserBundle\Entity\Role',
'label' => false
));
奇怪的是,传递一个空的空间(感觉非常脏)似乎呈现一个完全空的标签,即使在查看源时也没有空间。任何人都可以对最佳方法有所了解,甚至为什么空白空间似乎有效?
答案 0 :(得分:94)
从Symfony 2.2开始,您可以使用<label>
属性的false
值来避免label
呈现:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('Name', null, array('label' => false))
;
}
答案 1 :(得分:15)
保持你的观点&#39;规格与您的&#39;型号&#39;
分开
如果您按照接受的答案说明:
$builder
->add('Name', null, array('label' => false))
;
您的表单不可重复使用。特别是如果您的表单出现在多个位置(或将来可能会出现)。
如果您不想渲染表单标签,最好在 Twig 中进行(假设您使用的是Twig)。
而不是呈现{{ form_row(form.name) }}
,代替每个元素并排除form_label
离。
{{ form_errors(form.name) }}
{# {{ form_label(form.name) }} <-- just dont include this #}
{{ form_widget(form.name) }}
如果您希望标签在表格的一个实例中而不是另一个实例,则只需添加{{ form_label(form.name) }}
即可;改变array('label' => true)
会在任何地方改变标签
如果您使用单行{{ form(form) }}
呈现表单,那么您应该查看symfony docs
答案 2 :(得分:4)
只需将{'label':false}添加到您的form_row()
即可{{ form_row(form.name, {'label':false}) }}
答案 3 :(得分:3)
要隐藏我的标签,我必须只渲染字段的小部件,而不是标签,例如。
{{ form_widget(edit_form.event) }}
{{ form_rest(edit_form) }}
带有空格的''标签的问题在于它仍然呈现那里的html输入并影响页面。
答案 4 :(得分:2)
我不太了解你的问题但是在形式上显示标签的名称,personnaly我喜欢这样:
$builder
->add('role', 'text')
在我的树枝上:
<tr>
<td>{{ form_widget(form.role) }} </td>
<td>{{ form_label(form.role, "Name of Label") }}</td>
</tr>
<tr>
<td>{{ form_errors(form.role) }}</td>
</tr>
答案 5 :(得分:2)
这应该有用(虽然它不是一个非常干净的解决方案)
$builder
->add('roles', 'entity', array(
'class' => 'Acme\UserBundle\Entity\Role',
'label' => ' '
));
(注意刻度线之间的空格)