Bonjour, j'ai un soucis sous Symfony2

J'ai 4 entités :

Contact qui étent de FOSUserbundle
Company
ContactsCompanies
Position

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
 
namespace Site\UserBundle\Entity;
 
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
 
/**
 * @ORM\Entity
 * @ORM\Table(name="Contacts")
 */
class Contact extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
 
 
    /**
     * @ORM\OneToMany(targetEntity="Site\CoreBundle\Entity\ContactsCompanies", mappedBy="contact", cascade={"persist"})
     */
    protected $contacts_companies;
 
    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }
 
    /**
     * Constructor
     */
    public function __construct()
    {
        parent::__construct();
        $this->contacts_companies = new \Doctrine\Common\Collections\ArrayCollection();
    }
 
    /**
     * Add contacts_companies
     *
     * @param \Site\CoreBundle\Entity\ContactsCompanies $contactsCompanies
     * @return Contact
     */
    public function addContactsCompanie(\Site\CoreBundle\Entity\ContactsCompanies $contactsCompanies)
    {
        $this->contacts_companies[] = $contactsCompanies;
 
        return $this;
    }
 
    /**
     * Remove contacts_companies
     *
     * @param \Site\CoreBundle\Entity\ContactsCompanies $contactsCompanies
     */
    public function removeContactsCompanie(\Site\CoreBundle\Entity\ContactsCompanies $contactsCompanies)
    {
        $this->contacts_companies->removeElement($contactsCompanies);
    }
 
    /**
     * Get contacts_companies
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getContactsCompanies()
    {
        return $this->contacts_companies;
    }
 
 
 
}
Mon entité Company est similaire a mon entité Contact .

Mon formType ContactType:

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
    /**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
 
 
    $builder
        ->add('username', null, array('label' => 'contact.form.username', 'attr' => array('placeholder' => 'contact.form.username', 'class' => 'col-sm-6')))
        ->add('email', null, array('label' => 'contact.form.email', 'attr' => array('placeholder' => 'contact.form.email', 'class' => 'col-sm-6')))
        ->add('password', 'password', array('label' => 'contact.form.password', 'attr' => array('placeholder' => 'contact.form.password', 'class' => 'col-sm-6')))
        ->add('firstname', null, array('label' => 'contact.form.firstname', 'attr' => array('placeholder' => 'contact.form.firstname', 'class' => 'col-sm-6')))
        ->add('lastname', null, array('label' => 'contact.form.lastname', 'attr' => array('placeholder' => 'contact.form.lastname', 'class' => 'col-sm-6')))
        ->add('phone', null, array('label' => 'contact.form.phone', 'attr' => array('placeholder' => 'contact.form.phone', 'class' => 'col-sm-6')))
        ->add('fax', null, array('label' => 'contact.form.fax', 'attr' => array('placeholder' => 'contact.form.fax', 'class' => 'col-sm-6')))
        ->add('mobilephone', null, array('label' => 'contact.form.mobilephone', 'attr' => array('placeholder' => 'contact.form.mobilephone', 'class' => 'col-sm-6')))
        ->add('job', null, array('label' => 'contact.form.job', 'attr' => array('placeholder' => 'contact.form.job', 'class' => 'col-sm-6')))
    ;
 
    $builder->add('contacts_companies', 'collection', array('type' => new ContactCompanyType(), 'label'=> false));
 
}
Mon ContactsCompaniesType:

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
   /**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('position', 'entity', array(
                'label' => false,
                'class'    => 'SiteCoreBundle:Position',
                'property' => 'name',
                'multiple' => false)
        )
 
    ;
 
}
Dans mon controlleur j'ai

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
39
40
41
42
43
44
45
46
47
/**
  * Creates a new User entity.
  *
  */
 public function createAction(Request $request)
 {
     $entity = new User();
     $form = $this->createCreateForm($entity);
     $form->handleRequest($request);
 
     if ($form->isValid())
     {
         $companyid = $this->get('site_user.provider')->getUser()->getDefaultcompany();
         $company = $this->getDoctrine()
             ->getRepository('SiteCoreBundle:Company')
             ->find($companyid);
 
         // On persist la companie et on l'insert en base
         $em = $this->getDoctrine()->getManager();
 
         $userManager = $this->container->get('fos_user.user_manager');
         $newUser = $userManager->createUser($entity);
         $newUser = $entity;
 
         $newUser->setPlainPassword($entity->getPassword());
         $newUser->setEnabled(true);
         $newUser->setDefaultcompany($companyid);
         $userManager->updateUser($newUser);
 
         // On créer un objet ContactsCompanies et on le persist
         $contact_company = new ContactsCompanies();
         $contact_company->setUser($newUser);
         $contact_company->setCompany($company);
         $contact_company->setPosition($entity->getPosition());
         $em->persist($contact_company);
 
         // On ajoute en base les objets persistés
         $em->flush();
 
         return $this->redirect($this->generateUrl('contact_show', array('id' => $entity->getId())));
     }
 
     return $this->render('SiteCoreBundle:Contact:new.html.twig', array(
         'entity' => $entity,
         'form'   => $form->createView(),
     ));
 }
Le soucis en gros c'est que mon formulaire "Contact" s'affiche bien, sauf que j'ai pas l'attribut Position (donc mon select) qui dépend de ContactsCompanies

Si quelqu'un peut m'aider ce serait génial.

Dans le même temps vu que je débute sous SF si quelqu'un peu me donner des conseils sur ma synthaxe ce ne serait pas de refus

Merci d'avance