La Ferme du web - Les forums

Venez baraguiner avec la communauté !

Vous n'êtes pas identifié.

#1 14/11/2013 13:42:13

Khalezis
Membre
Date d'inscription: 11/12/2011
Messages: 2

[Doctrine 2] Problème d'insertion avec une relation manytomany

Bonjour à tous,

Voila j'ai deux entités, l'une s'appelle Page et l'autre Media, relier par une relation ManyToMany.
Mon programme est une interface multilingue, mais là n'est pas là le problème. Pour satisfaire cette demande, je clone mes objets, à l'aide clone de php pour garder toutes les informations qui necessite pas de traduction, comme les média. Ce que j'aimerai c'est que mon objet original et son clone pointe vers la même entité Media, sans créer un clone de ce dernier.

Mon soucis c'est que j'ai cette erreur lorsque j'essaie d'inserer mon clone dans la base de donnée:

Code:

[Doctrine\DBAL\DBALException]
  An exception occurred while executing 'INSERT INTO page_diapo (page_id, med
  ia_id) VALUES (?, ?)' with params [46, 1]:
 
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '46-1
  ' for key 'PRIMARY'
 
  [PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '46-1
  ' for key 'PRIMARY'

J'ai découvert que mon entité original était déjà dans la base de donnée, normale, ainsi que l'objet media relatif à l'entité original. Cependant, l'objet cloné elle ne se trouve pas dans la base de donnée.

Comment faire?

Voici mon code:

Code:

/**
     * @ORM\ManyToMany(targetEntity="Application\Sonata\MediaBundle\Entity\Media", inversedBy="diaporama", cascade={"all"})
     * @ORM\JoinTable(name="page_diapo")
     */
    private $diapo;
....
public function __clone()
    {
       ....
        $this->createdAt = new \DateTime('now');
        $this->updateAt = new \DateTime('now');
        foreach ($this->diapo as $item)
        {
            $this->addDiapo($item);
            $this->diapo->setOwner($this, $this->diapo->getMapping());
        }
    }

Par avance, je vous en remercie

Hors ligne

 

14/11/2013 13:42:13

Botte De Foin Publicitaire


Pied de page des forums

Powered by FluxBB
© Copyright 2008-2009 - LaFermeduWeb.net