首頁 >後端開發 >php教程 >symfony3创建表单后怎么给表单添加class

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

WBOY
WBOY原創
2016-06-06 20:17:401434瀏覽

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>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn