IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Doctrine2 PHP Discussion :

Warning: oci_bind_by_name() sur relation Many-To-Many


Sujet :

Doctrine2 PHP

  1. #1
    Invité2
    Invité(e)
    Par défaut Warning: oci_bind_by_name() sur relation Many-To-Many
    Bonjour à toutes et à tous,

    Je m'essaye à la relation Many-To-Many sur un cas basique avec 3 entités:

    - User (iduser, nom,...)
    - Societe (idsociete, nom,...)
    - user_societe (iduser, idsociete)

    Je souhaite donc qu'un utilisateur puisse être rattaché à une ou plusieurs société.

    Après avoir suivis plusieurs tuto et les docs de symfony/doctrine je me retrouve bloqué. Lorsque j'essaye d'attacher une société à un utilisateur je me retrouve avec l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: oci_bind_by_name() [<a href='function.oci-bind-by-name'>function.oci-bind-by-name</a>]: Invalid variable used for bind in C:\wamp\www\php\Promocast\Symfony\vendor\doctrine-dbal\lib\Doctrine\DBAL\Driver\OCI8\OCI8Statement.php line 112
    J'ai donc tenté des recherches mais aucun résultat. J'ai donc essayé de débug à la main pour essayer de voir ce qui cloche et j'ai l'impression que c'est lorsque le bind passe sur l'objet societe (à associer à l'user).

    Voici ce qui fait créée l'erreur selon le stack trace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('column' => ':param10', 'variable' => object(PcastSociete), 'type' => '1')
    Voici mon entité User (ce qui importe du moins):

    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
    	/**
         * @ORM\ManyToMany(targetEntity="PcastSociete", inversedBy="users")
         * @ORM\JoinTable(name="PcastLienusersociete",
         *   joinColumns={@ORM\JoinColumn(name="ImUser_iduser", referencedColumnName="iduser")},
         *   inverseJoinColumns={@ORM\JoinColumn(name="PcastLienusersociete_idsociete", referencedColumnName="idsociete")}
         * )
         */
        private $societes;
     
        public function getSocietes()
        {
            return $this->societes;
        }
     
        public function addSociete(\Myapp\UtilisateurBundle\Entity\PcastSociete $societe)
        {
            $this->societes[] = $societe;
        }
    Mon entité société :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	/**
         * @ORM\ManyToMany(targetEntity="ImUser", mappedBy="societes")
         */
        private $users;
     
        public function __construct() {
            $this->users = new \Doctrine\Common\Collections\ArrayCollection();
        }
    Ma table de lien:

    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
    <?php
     
    namespace Myapp\UtilisateurBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * Myapp\UtilisateurBundle\Entity\PcastLienusersociete
     *
     * @ORM\Table(name="PCAST_LIENUSERSOCIETE")
     * @ORM\Entity
     */
    class PcastLienusersociete
    {
        /**
         * @var integer $idsociete
         *
         * @ORM\Column(name="IDSOCIETE", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="NONE")
         */
        private $idsociete;
     
        /**
         * @var integer $iduser
         *
         * @ORM\Column(name="IDUSER", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="NONE")
         */
        private $iduser;
     
     
     
        /**
         * Set iduser
         *
         * @param Myapp\UtilisateurBundle\Entity\ImUser $iduser
         * 
         */
        public function setIduser(\Myapp\UtilisateurBundle\Entity\ImUser $iduser)
        {
            $this->iduser = $iduser;
        }
     
        /**
         * Get iduser
         *
         * @return Myapp\UtilisateurBundle\Entity\ImUser 
         */
        public function getIduser()
        {
            return $this->iduser;
        }
     
        /**
         * Set idsociete
         *
         * @param Myapp\UtilisateurBundle\Entity\Pcastsociete $idsociete
         */
        public function setIdsociete(\Myapp\UtilisateurBundle\Entity\Pcastsociete $idsociete)
        {
            $this->idsociete = $idsociete;
        }
     
        /**
         * Get idsociete
         *
         * @return Myapp\UtilisateurBundle\Entity\Pcastsociete 
         */
        public function getIdsociete()
        {
            return $this->idsociete;
        }
    }
    et enfin comment j'ajoute une nouvelle société à mon user (c'est un simple test):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $test_societe = $em->getRepository('MyappUtilisateurBundle:PcastSociete')->find(49);
    $newUser->addSociete($test_societe);
    En vous remerciant d'avance pour votre aide

    Cordialement,

    Coussinsky

    PS: Ma table de lien a été créée à la main d'où la description plus précise de la jointure dans les annotations de mon entité user.

  2. #2
    Invité de passage
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut
    Bonjour

    Je sais que la discussion date de plus d'un ans mais je rencontre en se moment le même problème.
    Alors si vous avez une solution a me proposer je vous serais très reconnaissant.

    Cordialement,
    Haythem

Discussions similaires

  1. PGSQL-EclipseLink Relation One To Many et Many To One
    Par faitor1 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/01/2015, 19h46
  2. Réponses: 3
    Dernier message: 05/04/2010, 14h42
  3. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50
  4. Réponses: 1
    Dernier message: 03/12/2006, 20h56
  5. Hibernate : suppression sur relation many to one
    Par taf dans le forum Hibernate
    Réponses: 1
    Dernier message: 23/05/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo