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

ORM PHP Discussion :

Doctrine et ForeignAlias


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 56
    Par défaut Doctrine et ForeignAlias
    Bonjour à tous,

    Voilà, j'ai un petit soucis incompréhensible depuis quelques jours, dans mes relations Doctrine.

    Déjà, voici mon YML (simplifié, car un peu trop volumineux):
    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
    Oeuvre:
      actAs:
        I18n:
          tableName: oeuvre_title
          fields:  [title, infos]
      columns:
        year:      {type: smallint }
        lang:      {type: string(64) }
        comment:   {type: string(255) }
        title:     {type: string(255) }
        infos:     {type: string(255) }
      relations:
        language:  { class: Country,     local: lang, foreign: code }
     
    Book:
      columns:
        id:        {type: integer, primary: true }
        lang:      {type: string(2), primary: true }
        editor_id: {type: integer, notnull: true }
        title:     {type: string(255) }
        oeuvre_id: {type: integer, notnull: true }
      relations:
        language:  { class: Country, local: lang, foreign: code }
        oeuvre:    { class: Oeuvre, local: oeuvre_id, foreign: id }
     
    BookOeuvre:
      columns:
        id:        {type: integer, primary: true, notnull: true }
        lang:      {type: string(2), primary: true, notnull: true }
        oeuvre_id: {type: integer, primary: true, notnull: true }
        book_id: {type: integer, primary: true, notnull: true }
      relations:
        language:  { class: Country, local: lang,  foreign: code }
        book:      { class: Book,    local: id,    foreign: id, foreignAlias: OeuvresList }
        oeuvre:    { class: Oeuvre,  local: oeuvre_id, foreign: id, foreignAlias: BooksList   }
    Dans le cas présent, les fonctions Book::getOeuvresList() et Oeuvre::getBooksList() devraient me renvoyer des listes de résultats du type Doctrine_Collection.

    Mais en faisant un var_dump sur les résultats, j'obtients ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var_dump(Book::getOeuvresList()) = object(BookOeuvre) {...} 
    var_dump(Oeuvre::getBooksList()) = object(Doctrine_Collection) { object(BookOeuvre) ...}
    Donc ma question est... Pourquoi dans le premier cas je n'obtient pas une liste d'objet, alors que la syntaxe et la même.
    J'ai vérifier dans le fichier modèle de Book pour être certain et j'ai bien un liaison du type Many:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            $this->hasMany('BookOeuvre as OeuvresList', array(
                 'local' => 'id',
                 'foreign' => 'id'));
    Je ne sais vraiment pas où chercher...

    Merci beaucoup.
    Snark.

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Avec ce schéma, Book a 1-1 Oeuvre(s) mais 0-n BookOeuvre(s). Si tu supprimes la colonne Book.oeuvre_id, ça devrait aller mieux.

Discussions similaires

  1. [Doctrine] Demande d'information sur une bonne utilisation
    Par anaon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/02/2009, 12h25
  2. [Doctrine] fixture et table liée
    Par nicolas.pied dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/02/2009, 12h16
  3. [Doctrine] classe d'association et récursivité
    Par Mitaka dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/05/2008, 17h13
  4. [Doctrine] Mettre doctrine en prod
    Par hpavavar dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/01/2008, 21h27
  5. [Doctrine] problème de case sensitive
    Par yanice dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 27/10/2007, 12h15

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