2013-09-05 5 views
44

मैं अपने symfony2 रूपों पर एक आईडी विशेषता को परिभाषित करना चाहता हूं।फॉर्म टैग सिम्फनी पर आईडी विशेषता

मैं अपने टहनी टेम्पलेट में इस के साथ की कोशिश की है:

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

लेकिन यह काम नहीं कर लगता है।

उत्तर

85

क्या आपने attr को आजमाया है?

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

thx बहुत, यह अच्छी तरह से काम करता है! – wonzbak

+0

आपका स्वागत है! स्वीकार किए गए मेरे उत्तर को चिह्नित करने के लिए स्वतंत्र महसूस करें;) – SirDerpington

20

विकल्प सरणी में आईडी उस प्रपत्र बिल्डर में पारित हो जाता सम्मिलित करें:

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

इसके अलावा, मैं ऊपर में जोड़ना चाहिए उल्लिखित उत्तर, कि आप इसे अपने नियंत्रक में ऐसा कर सकते हैं:

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

नमूना के लिए - मैंने ऐसा किया:

$this->createForm(registrationType::class, null, array(
    'action' => $this->generateUrl('some_route'), 
    'attr' => array(
     'id' => 'some_id', 
     'class' => 'some_class' 
    ) 
)); 
संबंधित मुद्दे