Comment allier une relation à partir d'une table à plusieurs à plusieurs sans supprimer quoi que ce soit?
J'ai essayé: p> My ProjectCat Entity: P > /**
* @ManyToMany(targetEntity="\Entities\Projectcat", cascade={"persist", "remove"})
* @JoinColumn(name="id", referencedColumnName="id")
*/
protected $getCategory;
3 Réponses :
Vos informations sont un peu limitées. Certaines informations supplémentaires sur le schéma de base de données et le projet seraient bien. Mais pour essayer.
Vous devez le retirer des deux côtés de la relation. Vous l'avez supprimé de la catégorie, mais vous devez également le supprimer du projet. P>
// Remove Category from Project $Project->Category->removeElement($Category); // Remove Project from Category $Category->Project->removeElement($Project);
Un ancien poste, mais la réponse ci-dessus m'a aidé, mais cela peut aider à l'élargir un peu, j'ai un projet qui peut avoir de nombreuses catégories (et des catégories que de nombreux projets), donc ce code me fait tous d'entre eux: Si je voulais supprimer toutes les catégories d'un projet, je le fais simplement: p> le problème avec La question initiale était que je croyais que la doctrine veut que vous passiez dans la catégorie référencée par le projet, non seulement une référence à la catégorie que vous avez saisie de manière indépendante à l'aide de ce code: P> $getCat = $this->_doctrine->getReference('\Entities\Projectcat', $catId);
La classe d'entité ne devrait pas s'en soucier si l'entité ou la référence associée a été utilisée. doctrine-orm.readthedocs.org/fr/ Dernière / Référence / ... L'objet de référence du proxy doit être transparent.
Un post plutôt ancien mais voulait fournir un moyen de s'assurer que l'association a été retirée du côté de l'entité ORM de la doctrine, plutôt que d'exécuter manuellement la remise en état de la collection de chaque entité et de développer la réponse de @Rene Terstegn. < p> Le problème est que la doctrine ne lie pas "auto-magiquement" fixe les associations, vous pouvez toutefois mettre à jour les méthodes Ajouter / Supprimer de l'entité pour le faire. P>
https://gist.github.com/ocrame/3121916 p>
L'exemple ci-dessous est basé sur le projet / catégorie de l'OP schéma.
Il suppose que la table alors tout ce que vous avez à faire est d'appeler le project_category code> est la table code> de nombreusesTomanany code> de la relation, ainsi que sur la catégorie code> et
catégorie code>. Tables utilisent la clé primaire.
id code>. p>
RemoVecategory CODE> ou
SupprimerProject code> méthode, au lieu des deux. La même chose peut être appliquée pour
addCategory code> et
addProject code>. P>
Quelqu'un sait? Je vous ai tiré tout .. Je peux supprimer le projet et supprimera également les nombreux à de nombreuses table, mais cette fois, je veux juste les dissuader. J'en ai besoin d'exister mais non associé à une catégorie ..