我有一个联系表单,我正在尝试将一个类放入表单的输入中。
这在ContactType中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Contact::class,
]);
}
这在我的树枝上
{{ form_start(form) }}
{{ form_widget(form.name, {attr: {class: 'myclass', placeholder: 'name'} }) }}
{{ form_end(form) }}
我得到这个html:
<input type="text" class="form-control" id="contact_name" name="contact[name]" required="required" placeholder="name">
它适用于占位符,但不适用于课堂。我试图将attr放入生成器中,它是相同的。类form-control
是否覆盖了我的班级?我该如何解决?
答案 0 :(得分:1)
尝试一下是否有帮助
{{ form_start(form) }}
{{ form_widget(form.name, {'attr': {'class': 'input-text input-text--white', 'placeholder': 'name'} }) }}
{{ form_end(form) }}
答案 1 :(得分:1)
我相信您无法在form_wdiget
上定义两个属性。解决方法是在FormBuilder中或在FormBuilder中进行。
您可以像这样在表单元素上定义属性:
$builder
->add('name', TextType::class, [
'attr' => [
'class' => 'my-class',
],
]);
请注意,对于CSS类,它必须位于数组attr
中,并且不要与EntityType::class
中的类在您的实体中混淆。
或
$builder
->add('name', TextType::class, [
'placeholder' => 'My place holder',
]);
所以您可以同时实现两个目标:
$builder
->add('name', TextType::class, [
'attr' => [
'class' => 'my-class',
],
'placeholder' => 'My place holder',
]);
您可以了解有关表单字段属性here的更多信息。
答案 2 :(得分:1)
我认为您正在使用引导表单主题,请检入配置文件。
,并且在这种情况下,您可以将这一行添加到树枝文件的顶部:
{%form_theme表单'form_div_layout.html.twig'%}
答案 3 :(得分:0)
您可以从官方页面阅读它: https://symfony.com/doc/current/reference/forms/types/form.html#attr
只需添加:{'attr':{'属性名称':'value'}}
如下所示
{{ form_widget(form.propertyName, {'attr': {'placeholder': 'name'} }) }}