Bonjour,
J'ai mon objet uzer,
qui a une relation M2M avec mon objet uzercateg.

Je souhaiterai que mon lien entre mon objet uzer et uzercateg soit à true pour tout les entrée que l'on aura pour uzercateg. et je souhaiterai caché cette partie du formulaire.

Je créé un formulaire externe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
namespace SB\UserBundle\Form;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
 
class UzerType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('lastname', 'text', array('label' => 'nom de famille'))
            ->add('firstname')
            ->add('uzercaracs', 'entity', array(
  'class'    => 'SBUserBundle:UzerCarac',
  'property' => 'title', 'expanded' => true,
  'multiple' => true))
            ->add('uzercategs', 'entity', array(
  'class'    => 'SBUserBundle:UzerCateg',
  'property' => 'title', 'expanded' => true,
  'multiple' => true))
        ;
    }
 
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'SB\UserBundle\Entity\Uzer'
        ));
    }
 
    public function getName()
    {
        return 'sb_userbundle_uzertype';
    }
}


voici mon controleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    public function editAction($id)
    {
        $repository = $this->getDoctrine()
                           ->getManager()
                           ->getRepository('SBUserBundle:Uzer');
 
        $uzer = $repository->find($id);
        $form = $this->createForm(new UzerType, $uzer);
        if($uzer === null)
        {
            throw $this->createNotFoundException('Vous n\'avez pas encore ajouté d\'utilisateur');
        }
        $request = $this->get('request');
        if ($request->getMethod() == 'POST') {
          $form->bind($request);
          if ($form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($uzer);
            $em->flush();
            return $this->redirect($this->generateUrl('uzer_gest_view_user', array('id' => $uzer->getId(),'uzer'=>$uzer)));
            }
          }
        return $this->render('SBUserBundle:UzerGest:edituzer.html.twig', array('id' => $uzer->getId(),'form' => $form->createView()));
    }