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

Symfony PHP Discussion :

Plusieurs entity manager [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut Plusieurs entity manager
    Bonjour,

    Je coince depuis plusieurs heures sur ce problème :
    J'utilise plusieurs entity manager.

    Voilà mon code :

    Config.yml
    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
     
    # Doctrine Configuration
    doctrine:
        dbal:
            default_connection:   default
            connections:
                default:
                    driver:   "%database_driver%"
                    host:     "%database_host%"
                    port:     "%database_port%"
                    dbname:   "%database_name%"
                    user:     "%database_user%"
                    password: "%database_password%"
                    charset:  UTF8
                serveur:
                    driver:   "%database_driver_serveur%"
                    host:     "%database_host_serveur%"
                    port:     "%database_port_serveur%"
                    dbname:   "%database_name_serveur%"
                    user:     "%database_user_serveur%"
                    password: "%database_password_serveur%"
                    charset:  UTF8
                    mapping_types:
                        enum: string
                        bit: boolean                
     
            # if using pdo_sqlite as your database driver, add the path in parameters.yml
            # e.g. database_path: %kernel.root_dir%/data/data.db3
            # path:     %database_path%
     
        orm:
            default_entity_manager:   default
            entity_managers:
                default:
                    connection:       default                
                    mappings:
                        AbcArchitectureBundle: ~
                        AbcCommunBundle: ~
                        AbcDiagnosticBundle: ~
                serveur:
                    connection:       serveur             
                    mappings:
                        AbcServeurBundle: ~
    Controler : Abc\CommunBundle\Controller\DefaultController.php
    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
     
    <?php
     
    namespace Abc\CommunBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Abc\DiagnosticBundle\Form\ParametresType;
     
    class DefaultController extends Controller
    {
     
        public function testAction()
        {
        	$oDiag = $this->getDoctrine()->getRepository( 'AbcServeurBundle:Diagnostic', 'serveur')->findOneById(1);
        	$var = $oDiag->getDossier()->getId();
     
        	return $this->render( 'AbcCommunBundle:Default:test.html.twig', array(
        			'var'=>$var,
        	));
        }
    }

    Entity : Abc\ServeurBundle\Entity\Diagnostic.php
    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
     
    <?php
     
    namespace Abc\ServeurBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * Diagnostic
     *
     * @ORM\Table(name="exp_diag")
     * @ORM\Entity
     */
    class Diagnostic
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="idDiag", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @var integer
         *
         * @ORM\ManyToOne(targetEntity="Abc\ServeurBundle\Entity\Dossier")
         * @ORM\JoinColumn(name="idDossier", referencedColumnName="idDossier")
         */
        private $dossier;
     
        /**
         * Set dossier
         *
         * @param \Abc\ServeurBundle\Entity\Dossier $dossier
         * @return Diagnostic
         */
        public function setDossier(\Abc\ServeurBundle\Entity\Dossier $dossier = null)
        {
            $this->dossier = $dossier;
     
            return $this;
        }
     
        /**
         * Get dossier
         *
         * @return \Abc\ServeurBundle\Entity\Dossier 
         */
        public function getDossier()
        {
            return $this->dossier;
        }
    }
    Entity : Abc\ServeurBundle\Entity\Dossier.php

    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
     
    <?php
     
    namespace Abc\ServeurBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * Dossier
     *
     * @ORM\Table(name="exp_dossiers")
     * @ORM\Entity
     */
    class Dossier
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="idDossier", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
     
        /**
         * Get id
         *
         * @return integer 
         */
        public function getId()
        {
            return $this->id;
        }
     
    }
    Twig : Abc\CommunBundle\Resources\views\Default\test.html.twig

    A l'affichage, j'ai toujours une valeur NULL pour $var, alors que dans la base de données, j'ai bien le DIAG 1, avec le champs "idDossier" qui vaut 10, et le dossier avec l'Id 10 est présent.
    J'ai ce probleme à chaque fois que j'utilise des entité du gesionnaire 'serveur'.
    Alors que ca fonctionne parfaitement avec le gestionnaire 'default'

    Je vous remercie pour votre aide,

    Gilles

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    J'ai vidé le cache est tout est rentré dans l'ordre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/01/2015, 16h49
  2. Réponses: 4
    Dernier message: 01/12/2007, 22h22
  3. Réponses: 6
    Dernier message: 02/10/2007, 16h05
  4. Effectuer du JDBC via l'Entity Manager
    Par Claythest dans le forum JPA
    Réponses: 1
    Dernier message: 06/04/2007, 10h22
  5. [EJB3 Entity] Création d'un entity Manager pour transaction
    Par bizet dans le forum Java EE
    Réponses: 4
    Dernier message: 23/02/2007, 08h58

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