Doctrine 2 ManyToMany cascade
Est-il possible dans la Doctrine de 2 à créer deux objets qui sont nombreux à de nombreuses et appel persistent seulement sur l'un d'eux pour sauver les deux?
Entité utilisateur:
/**
* Owning Side
*
* @ManyToMany(targetEntity="Role", inversedBy="users", cascade={"persist"})
* @JoinTable(name="user_roles",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="role_id", referencedColumnName="id")}
* )
*/
public $roles;
Rôle de l'entité:
/**
* Inverse Side
*
* @ManyToMany(targetEntity="User", mappedBy="roles")
*/
public $users;
De l'épargne: les
$role = new Role();
$user = new User();
$user->roles->add($role);
$role->users->add($user);
$em->persist($user);
$em->flush();
Il ne fonctionne pas et trows une erreur", Une nouvelle entité a été trouvé par une relation qui n'a pas été configuré pour cascade persist opérations: les Entités\Rôle@0000000004a29c11000000005c48cb75. Explicitement persister la nouvelle entité ou configurer en cascade persist opérations sur la relation."
OriginalL'auteur awattar | 2011-02-17
Vous devez vous connecter pour publier un commentaire.
Vous devez appliquer
cascade={"persist"}
le Rôle de l'entité.Pas un expert sur la Doctrine, mais je pense que la Doctrine contrôles de l'entité associée pour en cascade options.
Puisque vous êtes en cascade l'persistent de Utilisateurs à Rôles, il vérifie la Rôle entité si elle doit être conservée avec cascade.
OriginalL'auteur Hakan Deryal