bien le bonjour, j'ai un petit soucis de représentation relationnelle.

J'ai une table Cinéma et une Table Film.
Je souhaiterais maintenant rajouter un relation qui me donnerais les films projette dans chaque cinéma et pour chacun l'url de la page de présentation du film sur le site du cinéma en question.

Voici mon entity
class MovieCinema
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
 
class MovieCinema {
 
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="MyNameSpace\CoreBundle\Entity\Cinema", inversedBy="movies")
     */
    private $cinema;
 
     /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="MyNameSpace\CoreBundle\Entity\Movie", inversedBy="cinemas")
     */
    private $movie;
 
       /**
     * @var string $url
     *
     * @Assert\NotBlank()
     * @ORM\Column(name="url", type="integer")
     */
    private $url;
Voici mes form
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
class MovieCinemaType extends AbstractType {
 
    public function buildForm(FormBuilder $builder, array $options) {
        $builder
                ->add('cinema', 'entity', array(
                    'label' => 'movie.field.cinema',
                    'class' => 'MyNameSpaceCoreBundle\Entity\Cinema',
                    'required' => false
                ))
                ->add('url', 'text', array(
                    'label' => 'movie.field.url'
                ))
        ;
    }
 
    public function getName() {
        return 'corebundle_moviecinematype';
    }
 
 
    public function getDefaultOptions(array $options) {
        return array(
                'data_class' => 'MyNameSpace\CoreBundle\Entity\MovieCinema'
                );
    }
 
}
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
 
class MovieType extends AbstractType {
 
    public function buildForm(FormBuilder $builder, array $options) {
        $builder
                ->add('name', 'text', array(
                    'label' => 'movie.field.name'
                ))
                ->add('cinemas', 'collection', array(
                    'type' => new MovieCinemaType,
                    'prototype' => true,
                    'allow_add' => true)
                )
        ;
    }
 
    public function getName() {
        return 'corebundle_movietype';
    }
 
}

Lorsque je veux sauver mon formulaire, j'obtient
A new entity was found through the relationship 'MyNameSapce\CoreBundle\Entity\Movie#cinemas' that was not configured to cascade persist operations for entity: MyNameSapce\CoreBundle\Entity\MovieCinema@0000000059c00fdd00000000cd3391df. Explicitly persist the new entity or configure cascading persist operations on the relationship. If you cannot find out which entity causes the problem implement 'MyNameSapce\CoreBundle\Entity\MovieCinema#__toString()' to get a clue.