2013-06-13 16 views
31

Sto creando moduli con un campo non mappato come spiegato nello form documentation.Accesso a un campo non mappato in Symfony2 Controller

Tuttavia quando nel controller o simili voglio accedervi, attualmente sto usando la matrice richiesta POST e uscire da lì in questo modo:

$postData = $this->getRequest()->request->get('my_form_name'); 
$unmappedField = $postData['unmapped_field'] 

non riesco proprio a fare a meno di pensare questo è non è il modo migliore, e non riesco a trovare nulla sulla documentazione ufficiale.

C'è un modo migliore di questo?

+0

E a proposito di chiamare get (' unmapped_field ') sulla tua richiesta Oggetto? –

+1

Questo campo non mappato è contenuto in un oggetto entità o il modulo è stato associato a un array piatto? – DonCallisto

risposta

56

È possibile accedere a campo non mappato in forma

$unmappedField = $form['unmapped_field']->getData(); 
+0

funziona come un fascino –

+3

sì, sì, ma come ottenerlo dinamicamente in uno scenario in cui creo campi dinamici non mappati – Dheeraj

+0

Se si dispone di un modulo con tipi annidati, sarà qualcosa come '$ unmappedField = $ form ['subtype_name '] [' unmapped_field '] -> getData(); ' – Sam

14

tratto dal symfony doc sf 2.5 (testati anche con sf 2.3): Tipo

forma:

use Symfony\Component\Form\FormBuilderInterface; 

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('task') 
     ->add('dueDate', null, array('mapped' => false)) 


    ->add('save', 'submit'); 
} 

regolatore:

$form->get('dueDate')->getData(); 
$form->get('dueDate')->setData(new \DateTime()); 

http://symfony.com/doc/current/book/forms.html#creating-form-classes (scorrere verso il basso un po ')

+0

Non sapevo che' getData' avesse un complemento 'setData'. Esattamente quello di cui avevo bisogno, grazie! – Sam

Problemi correlati