web-dev-qa-db-fra.com

Accéder à un champ non mappé dans Symfony2 Controller

Je crée des formulaires avec un champ non mappé comme expliqué dans la documentation du formulaire .

Cependant, quand je suis dans le contrôleur ou similaire, je veux y accéder, actuellement j'utilise le tableau de demande POST et en sortir comme suit:

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

Je ne peux pas m'empêcher de penser que ce n'est pas la meilleure façon, et je ne trouve rien sur la documentation officielle.

Y a-t-il une meilleure façon que cela?

37
Andrew Atkinson

Vous pouvez accéder au champ non mappé dans le formulaire

$unmappedField = $form['unmapped_field']->getData();
63
Alexey B.

extrait du doc ​​symfony sf 2.5 (également testé avec sf 2.3):

type de formulaire:

use Symfony\Component\Form\FormBuilderInterface;

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


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

manette:

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

http://symfony.com/doc/current/book/forms.html#creating-form-classes (faites défiler un peu vers le bas)

15
c33s