Jea*_*ond 63 php forms input formbuilder symfony
如何使用in 将HTML class属性设置为表单?<input>FormBuilderSymfony2
像这样的东西:
->add('birthdate', 'date',array(
'input' => 'datetime',
'widget' => 'single_text',
'attr' => array(
'class' => 'calendar'
)
))
{{ form_widget(form.birthdate) }}
Run Code Online (Sandbox Code Playgroud)
我希望此input字段的属性class设置为日历
Pro*_*tic 119
您可以从twig模板执行此操作:
{{ form_widget(form.birthdate, { 'attr': {'class': 'calendar'} }) }}
Run Code Online (Sandbox Code Playgroud)
来自http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-hand
Acy*_*yra 110
你可以使用FormBuilder来完成它.将其添加到FormBuilder中的数组:
'attr'=> array('class'=>'span2')
Run Code Online (Sandbox Code Playgroud)
Jea*_*ean 27
如果你想在控制器中设置属性,Acyra的答案会以正确的方式引导,但是有许多不准确之处.
是的,你可以直接使用FormBuilder,使用attr属性(这里介绍2.1版本,这里介绍2.0)到选项数组,如下所示:
->add('birthdate', 'date',array(
'input' => 'datetime',
'widget' => 'single_text',
'attr' => array('class'=>'calendar')
))
Run Code Online (Sandbox Code Playgroud)
"功能被破坏"并非如此.它运作得很好!
Symfony2并不是将HTML class属性应用于标签和输入(至少从2.1版本开始).
此外,由于attr属性是数组本身,因此您可以传递要为该字段呈现的任何HTML属性.如果您想传递HTML5 data-属性,这将非常有用.
小智 5
您可以在表单类的选项中添加它:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\MyEntity',
'attr' => array(
'class' => 'form-horizontal'
)
));
}
Run Code Online (Sandbox Code Playgroud)