Symfony2 - Set de sélectionner une valeur pour le champ entity

Je suis en train de définir une valeur choisie à l'intérieur d'un champ entity. Conformément à de nombreuses discussions que j'ai vu sur ce sujet, j'ai essayé de définir le data option, mais cela ne permet pas de sélectionner les valeurs par défaut:

class EventType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('place', 'entity', array(
                'class' => 'RoyalMovePhotoBundle:Place',
                'property' => 'name',
                'empty_value' => "Choisissez un club",
                'mapped' => false,
                'property_path' => false,
                'data' => 2
            ))
            ->add('begin')
            ->add('end')
            ->add('title')
            ->add('description')
        ;
    }

    //...
}

Par la recherche de plus j'ai constaté que certaines personnes avaient à désactiver la forme de mapping de l'entité. Qui semble logique, j'ai donc essayé d'ajouter 'mapped' => false pour les options, sans succès...

Si cela peut aider, voici mon controller:

class EventController extends Controller
{
    //...

    public function addAction()
    {
        $request = $this->getRequest();
        $em = $this->getDoctrine()->getManager();

        $event = new Event();
        $form = $this->createForm(new EventType(), $event);

        $formHandler = new EventHandler($form, $request, $em);

        if($formHandler->process()) {
            $this->get('session')->getFlashBag()->add('success', "L'évènement a bien été ajouté.");
            return $this->redirect($this->generateUrl('photo_event_list'));
        }

        return $this->render('RoyalMovePhotoBundle:Event:add.html.twig', array(
            'form' => $form->createView()
        ));
    }
}

Et la EventHandler classe:

class EventHandler extends AbstractHandler
{
    public function process()
    {
        $form = $this->form;
        $request = $this->request;

        if($request->isMethod('POST')) {
            $form->bind($request);

            if($form->isValid()) {
                $this->onSuccess($form->getData());
                return true;
            }
        }

        return false;
    }

    public function onSuccess($entity)
    {
        $em = $this->em;

        $em->persist($entity);
        $em->flush();
    }
}

Je suis un peu coincé maintenant, est-ce que quelqu'un a une idée?

OriginalL'auteur Nesk | 2013-04-01