Forms 获取细枝中的输入类型以确定标签
我有这个Forms 获取细枝中的输入类型以确定标签,forms,symfony,label,twig,Forms,Symfony,Label,Twig,我有这个 {% block form_row %} <div class="form-group"> {{ form_label(form) }} {{ form_widget(form) }} </div> {% endblock form_row %} 可以替代用于渲染特定表单类型的块 例如,如果要覆盖电子邮件输入的标签模板,则应覆盖电子邮件标签块: {% block email_label %} This i
{% block form_row %}
<div class="form-group">
{{ form_label(form) }}
{{ form_widget(form) }}
</div>
{% endblock form_row %}
可以替代用于渲染特定表单类型的块 例如,如果要覆盖电子邮件输入的标签模板,则应覆盖电子邮件标签块:
{% block email_label %}
This is the template used for all email input
{% endblock %}
{% block form_label %}
This is the fallback template for all other input types
{% endblock %}
通过查看form.vars.block\u前缀,可以检查可以为特定表单视图覆盖哪些块
例如,对于“email”类型的“personnal_email”字段,它将包含:
array:4 [▼
0 => "form"
1 => "text"
2 => "email"
3 => "_form_personnal_email"
]
这意味着您可以覆盖块(从不太具体的块开始)表单(小部件标签错误)
,文本(小部件标签错误)
,电子邮件(小部件标签错误)
和表单个人电子邮件(小部件标签错误)
(最后一个用于覆盖非常特定字段的呈现)
它回答了你的问题吗
更新
以下是您必须做的:
{% block form_row %}
<div class="form-group">
{{ form_label(form) }}
{{ form_widget(form) }}
</div>
{% endblock %}
{% block checkbox_label %}
<!-- Your checkbox specific label -->
{% endblock %}
{%block form_row%}
{{form_标签(form)}
{{form_widget(form)}
{%endblock%}
{%block复选框\u label%}
{%endblock%}
您无法访问表单行块中的类型
,因为它仅在表单小部件的子块中定义(参见示例)您可以使用自定义格式:
<div class="form-group">
{{ form_label(form.your_value, 'Your Title of field', { 'label_attr': {'class': 'col-sm-3 control-label'} }) }}
<div class="col-sm-9">
{{ form_widget(form.your_value, { 'attr': {'class': 'form-control selectJS'} }) }}
</div>
</div>
{form_label(form.your_值,'your Title of field',{'label_attr':{'class':'col-sm-3 control label'}}}}
{{form_小部件(form.your_值,{'attr':{'class':'form control selectJS'}}}}}
或者您可以使用FormType(如果生成实体,这是Form文件夹中的文件),如:
有用的答案,帮助我发现了新的东西。谢谢我的编辑,我不确定这是否有帮助。我希望能够使用该类型并按我的意愿使用它。您是否尝试覆盖复选框标签块?我已编辑我的答案,以向您显示您必须执行的操作,但仍不允许我编辑订单?如果我想在输入后最后一个标签呢?谢谢你的帮助@Gildas!
<div class="form-group">
{{ form_label(form.your_value, 'Your Title of field', { 'label_attr': {'class': 'col-sm-3 control-label'} }) }}
<div class="col-sm-9">
{{ form_widget(form.your_value, { 'attr': {'class': 'form-control selectJS'} }) }}
</div>
</div>
<?php
namespace Ens\YourBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class NoticeType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title','text', array(
'label'=>'Title',
'label_attr'=>array( 'class'=>'col-sm-3 control-label' ),
'attr'=>array( 'class'=> 'form-control')
))
->add('text', 'textarea', array(
'label'=>'Text',
'label_attr'=>array( 'class'=>'col-sm-3 control-label' ),
'attr'=>array( 'class'=> 'form-control')
))
->add('keep_on_top','checkbox', array(
'label'=>'Keep on top',
'required'=>false
))
->add('start', 'date', array(
'attr'=>array( 'class'=> 'hidden')
))
->add('end', 'date', array(
'attr'=>array( 'class'=> 'hidden')
))
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Ens\YourBundle\Entity\Notice'
));
}
/**
* @return string
*/
public function getName()
{
return 'notice';
}
}