Bonjour à tous,
j'utilise un formulaire imbriqué pour l'enregistrement d'un utilisateur,le formulaire imbriqué est lié à la table de l'insee (liste des villes de france).
Mon formulaire principal enregistre l'utilisateur AINSI que l'id de la ville choisie si il est renseigné. (il sera renseigné après saisie du code postal, une liste des villes sera proposée via ajax)
Le problème est que je ne veux pas persister la ville. Je veux juste récupérer l'id

l'affichage des formulaires imbriqués ne pose pas de problème, mais à la validation j'ai ceci :

A new entity was found through the relationship 'Powgate\UserBundle\Entity\User#cp_ville' that was not configured to cascade persist operations for entity: Powgate\UserBundle\Entity\CpVilles@0000000007ad872e00007f6f503f132b. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'Powgate\UserBundle\Entity\CpVilles#__toString()' to get a clue.
je voudrais persister que la classe User, et pas la classe CpVilles qui est déjà remplie.

voici la classe User
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 
<?php
namespace Powgate\UserBundle\Entity;
 
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Entity\User as BaseUser;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
 
/**
 * User
 *
 * @ORM\Table(name="powgate_user")
 * @ORM\Entity(repositoryClass="Powgate\UserBundle\Entity\UserRepository")
 * @UniqueEntity("username", message="Pseudo déja utilisé")
 * @UniqueEntity("email", message="Email déja utilisé")
 */
class User extends BaseUser
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
 
    /**
     * @var string
     *
     * 
     * @Assert\Length(
     *          min="6",
     *          max="20",
     *          minMessage="Le pseudo saisi est trop court (6 caractères minimum)",
     *          maxMessage="Le pseudo saisi est trop long (20 caractères maximum)")
     */
    protected $username;
 
    /**
     * @var string
     *
     * 
     * @Assert\Length(
     *          min="6",
     *          max="12",
     *          minMessage="Le mot de passe saisi est trop court (6 caractères minimum)",
     *          maxMessage="Le mot de passe saisi est trop long (12 caractères maximum)")
     */
    protected $password;
 
    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=30, nullable=true)
     */
    protected $nom;
 
    /**
     * @var string
     *
     * @ORM\Column(name="prenom", type="string", length=30, nullable=true)
     */
    protected $prenom;
 
    /**
     * @var string
     *
     * 
     * @Assert\Email(
     *     message = "'{{ value }}' n'est pas un email valide.",
     *     checkMX = true
     * )
     */
    protected $email;
 
    /**
     * @var string
     *
     * @ORM\Column(name="societe", type="string", length=50, nullable=true)
     */
    protected $societe;
 
    /**
     * @var integer
     *
     * @ORM\OneToOne(targetEntity="Powgate\UserBundle\Entity\CpVilles")
     * @ORM\JoinColumn(nullable=true)
     */
    protected $cp_ville;
 
    /**
     * @var date
     *
     * @ORM\Column(name="dateCreation", type="datetime")
     */
    protected $dateCreation;
 
    /**
     * @var date
     *
     * @ORM\Column(name="dateModification", type="datetime")
     */
    protected $dateModification;
 
    /**
     * @var booleen
     *
     * @ORM\Column(name="isactif", type="boolean")
     */
    protected $isActif;
 
    /**
     * @var booleen
     *
     * @ORM\Column(name="isbanned", type="boolean")
     */
    protected $isBanned;
 
    /**
     * @var booleen
     *
     * @ORM\Column(name="tobedeleted", type="boolean")
     */
    protected $toBeDeleted = false;
et la classe CpVilles
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
 
<?php
 
namespace Powgate\UserBundle\Entity;
 
use Doctrine\ORM\Mapping as ORM;
 
/**
 * Cp_villes
 *
 * @ORM\Table(name="powgate_cp_villes")
 * @ORM\Entity(repositoryClass="Powgate\UserBundle\Entity\CpVillesRepository")
 */
class CpVilles
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
    /**
     * @var string
     *
     * @ORM\Column(name="Commune", type="string", length=26)
     */
    private $commune;
 
    /**
     * @var string
     *
     * @ORM\Column(name="Codepos", type="string", length=6)
     */
    private $codepos;
 
    /**
     * @var string
     *
     * @ORM\Column(name="Departement", type="string", length=23)
     */
    private $departement;
 
    /**
     * @var integer
     *
     * @ORM\Column(name="INSEE", type="integer")
     */
    private $INSEE;
comment puis-je procéder pour persister la classe User sans faire une cascade avec CpVille?

merci d'avance pour votre aide.