Heim  >  Artikel  >  Backend-Entwicklung  >  symfony3创建表单后怎么给表单添加class

symfony3创建表单后怎么给表单添加class

WBOY
WBOYOriginal
2016-06-06 20:17:401417Durchsuche

symfony自带的创建表单功能,创建表单后,在模板直接这样就可以显示:

{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}

请问能不能再创建表单的时候,为要创建的表单元素都添加一个class,这样给前端,前端更好写样式,以下是创建表单代码:

<code>$task = new Task();
$task->setTask('测试表单');
$task->setDueDate(new \DateTime('tomorrow'));

$form = $this->createFormBuilder($task)->add('task', TextType::class)
    ->add('dueDate', DateType::class)
    ->add('save', SubmitType::class, array('label' => 'Create task'))
    ->getForm();</code>

回复内容:

symfony自带的创建表单功能,创建表单后,在模板直接这样就可以显示:

{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}

请问能不能再创建表单的时候,为要创建的表单元素都添加一个class,这样给前端,前端更好写样式,以下是创建表单代码:

<code>$task = new Task();
$task->setTask('测试表单');
$task->setDueDate(new \DateTime('tomorrow'));

$form = $this->createFormBuilder($task)->add('task', TextType::class)
    ->add('dueDate', DateType::class)
    ->add('save', SubmitType::class, array('label' => 'Create task'))
    ->getForm();</code>

Symfony的form在Twig模板里可以每个表单组件单独渲染,同时设置各自的class(或者其他)属性,如下:

<code>{{ form_start(form) }}
{{ form_widget(form.field1, { 'attr': { 'class': 'class1' } }) }}
{{ form_widget(form.field2, { 'attr': { 'class': 'class2' } }) }}
{{ form_widget(form.field3, { 'attr': { 'class': 'class3' } }) }}
{{ form_widget(form.field4, { 'attr': { 'class': 'class4' } }) }}
{{ form_end(form) }}</code>

$form = $this->createForm(new AnswerType(), new Answer(), [

<code>        'action' => $this->generateUrl('eb5_qas_reply', ['id' => $id]),
        'method' => 'POST',
        'attr' => ['class' => 'form-horizontal']
    ]);
    
   创建form attr属性</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn