Bonjour à tous,

Je m'en remets à vous au sujet d'un problème de manipulation d'association avec Doctrine 2. Je vous explique la situation :

Je manipule des livres et des utilisateurs. Un livre appartient à un utilisateur et un utilisateur possède plusieurs livres.

En générant mes entités selon mon modèle de données, Doctrine me génère la relation Many To One sur ma clé étrangère Utilisateur dans mon entité Livre :

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
/**
 * Livre
 *
 * @Table(name="livre")
 * @Entity
 */
class Model_Entities_Livre
{
    //...
     /**
     * @var User
     *
     * @ManyToOne(targetEntity="Model_Entities_User", cascade={"all"})
     * @JoinColumns({
     *   @JoinColumn(name="user_user_id", referencedColumnName="user_id",      unique=true)
     * })
     */
    private $_userUser;
}
Mon problème est le suivant :
J'ai entré un nouvel utilisateur dans ma base afin de définir que tel livre lui appartient. Je le charge donc côté PHP afin de renseigner l'attribut utilisateur de mon objet livre. Seulement, quand j'insère dans la base mon objet livre, Doctrine m'oblige à persister mon objet User et ainsi, un nouvel utilisateur avec les mêmes attributs que celui déjà présent est inséré dans la table utilisateur. Y-a-t-il un moyen pour entrer un nouveau livre dans la base à partir d'un utilisateur déjà existant sans insérer un nouvel utilisateur ?