2013-09-05 8 views
44

私のsymfony2フォームにid属性を定義したいと思います。フォームタグのid属性symfony

私は私の小枝テンプレートでこれを試してみた:

{{ form_start(form, {'id': 'form_person_edit'}) }} 

しかし、それは動作していないようです。

答えて

85

attrを試しましたか?

{{ form_start(form, {'attr': {'id': 'form_person_edit'}}) }} 
+0

thx多く、それはうまく動作します! – wonzbak

+0

ご連絡ありがとうございます!私の答えは受け入れられたものとして自由に記入してください。 – SirDerpington

20

フォームビルダーに渡されるオプションの配列でIDを注入:

public function newAction(Request $request) 
{ 
    // create a task and give it some dummy data for this example 
    $task = new Task(); 
    $task->setTask('Write a blog post'); 
    $task->setDueDate(new \DateTime('tomorrow')); 

    $form = $this->createFormBuilder($task, ['attr' => ['id' => 'task-form']]) 
     ->add('task', 'text') 
     ->add('dueDate', 'date') 
     ->add('save', 'submit', ['label' => 'Create Post']) 
     ->getForm(); 

    return $this->render('AcmeTaskBundle:Default:new.html.twig', [ 
     'form' => $form->createView(), 
    ]); 
} 

またはフォームタイプ:加え

class TaskType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('task') 
      ->add('dueDate', null, ['widget' => 'single_text']) 
      ->add('save', 'submit'); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults([ 
      'data_class' => 'Acme\TaskBundle\Entity\Task', 
      'attr' => ['id' => 'task-form'] 
     ]); 
    } 

    public function getName() 
    { 
     return 'task'; 
    } 
} 
2

、Iは上記に追加してくださいあなたのコントローラーで次のようにこれを行うことができます:

$this->createForm(FormTypeInterFace, data, options); 

サンプルについて - これはそうでした:

$this->createForm(registrationType::class, null, array(
    'action' => $this->generateUrl('some_route'), 
    'attr' => array(
     'id' => 'some_id', 
     'class' => 'some_class' 
    ) 
)); 
関連する問題